2010-09-26 5 views
8

मैं default.ctp फ़ाइल को अनुकूलित करने की प्रक्रिया में हूं और मैं वर्तमान में पृष्ठ के शीर्ष पर उपयोगकर्ता के नाम पर लॉग इन करने का प्रयास कर रहा हूं।डिफ़ॉल्ट लॉग-ऑन उपयोगकर्ता को डिफ़ॉल्ट.ctp में प्रदर्शित करने का सबसे अच्छा तरीका?

app_controller.php में, मैं निम्नलिखित है:

function beforeFilter() 
{ 
    $user = $this->Auth->user(); 

    if($user != null) 
    { 
     $this->Session->write('user_name',$user['User']['username']); 
    } 
} 

और default.ctp में, मेरे पास है:

$user = $this->Session->read('Auth.User'); 

if(!empty($user)) 
{ 
    echo 'Hello, ' . $user['user_name']; 
} 

हालांकि, यह मूल्य $user_name कहीं भी सेट नहीं हो रही है की तरह लगता है।

मैं क्या गलत कर रहा हूं? क्या इसे पूरा करने का कोई बेहतर तरीका है?


अद्यतन: मैं इसे संशोधित कर लिया है इस सवाल का जवाब में वर्णित है, लेकिन यह अभी भी काम नहीं करता।

Undefined index: user_name [APP/views/layouts/default.ctp, line 21]

+1

सिर्फ सरणी कुंजी का उपयोग मैं कोई त्रुटि मिलती है जिसका उपयोग आप करते हैं, यानी उपयोगकर्ता नाम। आपको नियंत्रक में किसी भी अन्य कोड की आवश्यकता नहीं है जैसे आपके पास – dogmatic69

+0

@dog: धन्यवाद। मुझे बस एहसास हुआ। –

उत्तर

12

आप भी SessionHelper सीधे देखें/लेआउट में उपयोग कर सकते हैं

$user = $this->Session->read('Auth.User'); 
if(!empty($user)) { 
    echo 'Hi ', $user['user_name']; 
} 
+2

केकेपीएचपी 2, '$ उपयोगकर्ता ['उपयोगकर्ता नाम'] के साथ;'। –

+2

फ़ील्ड जो भी डेटाबेस में सहेजा गया है वह होगा। केक के संस्करण के साथ इसके साथ कुछ लेना देना नहीं है। – dogmatic69

+0

केकेपीएचपी 3 के लिए, अब हम '$ this-> अनुरोध-> सत्र() -> पढ़ें ('Auth.User') का उपयोग करेंगे; 'क्योंकि सत्र हेल्पर अब – Figjeti

-2
$user = $this->Session->read('Auth.User'); 
if(count($user)) 
      echo $user['name']; 
+1

को हटा दिया गया है, आपने जो कुछ किया है वह dogmatic69 के उत्तर कोड की प्रतिलिपि बना रहा था, ठीक करें छोटी, मामूली त्रुटि जो स्पष्ट हो गई थी, और कोड को समझाने के लिए भी परेशान नहीं था। यदि आपके पास कोई प्रतिनिधि था, तो मैं वोट दूंगा। –

3

CakePHP 2.x:

<?php if (AuthComponent::user('id')): ?> 
<p class="navbar-text pull-right"> 
Logged in as <a href="#" class="navbar-link"><?= AuthComponent::user('name') ?></a> 
</p> 
<?php endif; ?> 
संबंधित मुद्दे

 संबंधित मुद्दे