2009-05-30 20 views
7

cakebook section on the Auth component के अनुसार, मैं निम्नलिखित उपयोगकर्ता नियंत्रक का उपयोग करके सरल प्रमाणीकरण लागू कर सकते हैं:क्या केकपीएचपी में एक दृश्य से AuthComponent उपयोगकर्ता डेटा प्राप्त करने का कोई आसान तरीका है?

<?php 
    $username = $auth->user('username'); 
    echo "Welcome " . $username; 
?> 

है:

class UsersController extends AppController { 

    var $name = 'Users';  
    var $components = array('Auth'); // Not necessary if declared in your app controller 

    /** 
    * The AuthComponent provides the needed functionality 
    * for login, so you can leave this function blank. 
    */ 
    function login() { 
    } 

    function logout() { 
     $this->redirect($this->Auth->logout()); 
    } 
} 

मैं अपने दृश्य में निम्नलिखित की तरह कुछ करने में सक्षम होना चाहते हैं ऐसा करने का एक आसान तरीका है, या मुझे लॉगिन फ़ंक्शन को ओवरराइट करने और उपयोगकर्ता नाम को सत्र में संग्रहीत करने की आवश्यकता है?

अद्यतन

Alexander's answer मैं वास्तव में क्या चाहते थे है। हालांकि, अगर कोई और उलझन में आता है तो मैं निम्नलिखित जोड़ दूंगा।

यह मुझे कुछ समय लिया समझना महत्वपूर्ण है कि यदि आप मॉडल है कि प्रमाणीकरण का उपयोग करता है (उदाहरण के लिए, आप 'उन' के स्थान पर 'व्यक्तियों' तालिका विकल्प हों) बदलने के लिए, तो आप की तरह कुछ का उपयोग करने की आवश्यकता है:

$persondata = $session->read('Auth.Person'); 

उत्तर

12

$ के माध्यम से अपने विचारों और/या लेआउट से पहुंच सकते हैं वास्तव में इस जानकारी सत्र से आसानी से उपलब्ध है। आप इसे पकड़ने के लिए सत्र सहायक का उपयोग करते हैं। मेरा मानना ​​है कि सही सिंटैक्स है:

$userdata = $session->read('Auth.User'); 
$username = $session->read('Auth.User.username'); 

संपादित करें:

CakePHP 2.x के लिए और वाक्य रचना पर है:

$userdata = $this->session->read('Auth.User'); 
$username = $this->session->read('Auth.User.username'); 
+0

धन्यवाद। यही वह है जिसकी तलाश में मैं हूं। –

+0

आपको केकपीएचपी 2.x $ userdata = $ this-> सत्र-> पढ़ें ('Auth.User') में इस वाक्यविन्यास का उपयोग करना चाहिए; $ उपयोगकर्ता नाम = $ यह-> सत्र-> पढ़ें ('Auth.User.username'); – vinzcelavi

+0

नोट: कम से कम केकफ़्फ़ 2.7 में काम नहीं करता है, इसे $-> सत्र होना चाहिए .... सत्र में एस अपरकेस होना चाहिए –

3

बाहर चेक CakePHP के मैनुअल में AuthComponent-तरीके ....

आप उपयोगकर्ता के बाद एक उपयोगकर्ता $ this-> Auth- के माध्यम से सत्र से में लॉग इन किया है एक उपयोगकर्ता की जानकारी का उपयोग कर सकते>()। तो यदि आप उपयोगकर्ता नाम चाहते हैं, तो बस इसे नियंत्रक में उपयोग करें।

$ यह-> सेट ('उपयोगकर्ता नाम', $ यह-> लेखक-> उपयोगकर्ता ('उपयोगकर्ता नाम'));

अब आप दृश्य में $ उपयोगकर्ता नाम का उपयोग कर सकते हैं।

2

अपने AppController

function beforeFilter() { 
$ath = $this->Auth->user(); 
$this->set('userDetails', $ath['User']); 
} 

में एक विधि जोड़ें और फिर आप userDetails

0

प्रमाणीकरण विचारों में वार्स तक पहुंचने के लिए बस कर:

 
echo $session->read('Auth.User.id'); 
संबंधित मुद्दे

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