2010-07-01 13 views
14

यह एक दो चरण की प्रक्रिया इस प्राप्त करने के लिए की तरह लगता है,CakePHP - जब प्रमाणीकरण

$u = $this->Auth->user(); 
    $uid = $u['User']['id']; 

है वहाँ एक चर एक उपयोगकर्ता एक बार कहीं सेट में लॉग ऑन है नहीं का उपयोग कर नियंत्रक में उपयोगकर्ता आईडी मिल सकता है? (मूक प्रश्न के लिए खेद है।)

उत्तर

30

मुझे लगता है कि आप $uid = $this->Auth->user('id'); कर सकते हैं - एपीआई की जाँच करें: http://api.cakephp.org/class/auth-component#method-AuthComponentuser

+0

तथ्य यह है कि आप एक महत्वपूर्ण तर्क प्रदान कर सकते हैं एपीआई में ठीक है ... मुझे लगता है कि मैं वहां और अधिक बार देखता हूं। – Owen

10

आज़माएं:

$this->Auth->user('id') 
+0

चेतावनी - केकफ़्प 3 पर यह काम।x – Rod

4

तुम भी सत्र अगर से उपयोगकर्ता जानकारी प्राप्त कर सकते हैं ऑथ क्लास आपके लिए उपलब्ध नहीं है।

$this->Session->read('Auth.User.id') 
+1

यह सहायक है अगर आपके पास AppController स्तर –

16

CakePHP में वहाँ कई तरीके सत्र से प्रयोक्ता आईडी प्राप्त करने के लिए कर रहे हैं, यहाँ हैं कुछ उदाहरण

नियंत्रक उपयोग के भीतर सत्र प्रयोक्ता आईडी प्राप्त करने के लिए:

$uid = $this->Auth->User('user_id'); 

सत्र उपयोगकर्ता आईडी को देखने के लिए, उपयोग करें: (अनुशंसित नहीं है, मैं इसे नियंत्रक में सेट कर दूंगा)

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

एक मॉडल के भीतर सत्र प्रयोक्ता आईडी प्राप्त करने के लिए, का उपयोग करें: (अनुशंसित नहीं है, लेकिन एक समाधान)

$uid = CakeSession::read('Auth.User.id'); 

मैं भीतर से सत्र प्रयोक्ता आईडी प्राप्त करने के लिए ऊपर की सलाह नहीं देते मॉडल, मैं, नियंत्रक के माध्यम से इसे पारित होगा का उपयोग करें:

$this->Model->function($uid); 

तुम भी शुद्ध php के माध्यम से सत्र प्रयोक्ता आईडी प्राप्त कर सकते हैं, उपयोग करें: (हालांकि का उपयोग कर केक आप परंपराओं से चिपके रहते हैं चाहिए)

$uid = $_SESSION['Auth']['User']['id']; 

और यहां कुछ और दृष्टिकोण हैं, इस बस कुछ ही है ...

+2

पर पंजीकृत AuthComponent नहीं है, यह एक अच्छा जवाब था और इसे नियंत्रक से मॉडल में गुजरने की सिफारिश के लिए स्वीकृत उत्तर – justinhartman

+0

+1 के रूप में चिह्नित किया जाना चाहिए, केक सत्र :: पढ़ें ('Auth.User.id'); मॉडल में। – Fr0zenFyr

5

CakePHP 2.x:

कहीं भी

:

AuthComponent::user('id') 

नियंत्रक के अंदर:

$this->Auth->user('id'); 
0

यह कोई उपयोग नहीं हो सकता है, लेकिन मुझे $this->Auth->user(); द्वारा त्रुटि का कारण हो रहा था इस समस्या को इसके बजाय हल किया गया था। मुझे इस मुद्दे के मार्ग के बारे में निश्चित नहीं है, लेकिन जब मैंने $this->Auth->user(); AuthComponent::user('id') का उपयोग करके मुद्दों को हल किया, तो उसी मॉडल में एक मॉडल से फ़ंक्शन को कॉल करते समय यह आया।