2012-09-16 20 views
6

से वर्तमान उपयोगकर्ता प्राप्त करें तो मैं अपने मुख्य लेआउट में क्या करना चाहता हूं, उपयोगकर्ताओं में लॉग इन करने के लिए एक मेनू है, और एनन उपयोगकर्ताओं के लिए एक अलग है।देखें

यह लेआउट प्रत्येक पृष्ठ पर उपयोग किया जाएगा, इसलिए मुझे यकीन नहीं है कि यह कैसे किया जाए, जैसा कि मैंने देखा है, ऑथ घटक केवल नियंत्रक में उपयोग किया जा सकता है, यह अच्छा होगा अगर मुझे करना पड़े यह केवल एक दृश्य में है, लेकिन हर दृश्य के लिए, मैं यह कैसे कर सकता हूं? क्या मुझे AppController पर कुछ करना है?

मुझे क्या करना चाहते हैं

// layout 
<?php if(logged): ?> 
Welcome <?php echo $user; ?> 
<?php else: ?> 
Welcom anon, Log in? 
<?php endif; ?> 

उत्तर

15

आप अपने दृश्य के रूप में अच्छी तरह से प्रमाणीकरण घटक का उपयोग में उपयोगकर्ता के प्रवेश का उपयोग कर सकते मूल रूप से है। manual से:

एक बार एक उपयोगकर्ता के प्रवेश, आप अक्सर वर्तमान उपयोगकर्ता के बारे में कुछ विशेष जानकारी की आवश्यकता होगी। आप AuthComponent :: उपयोगकर्ता() का उपयोग कर उपयोगकर्ता में वर्तमान में लॉग इन कर सकते हैं। यह विधि स्थैतिक है, और को AuthComponent लोड होने के बाद विश्व स्तर पर उपयोग किया जा सकता है। आप इसे दोनों एक उदाहरण विधि के रूप में या एक स्थिर पद्धति के रूप में पर पहुंचा जा सकता:

// Use anywhere 
AuthComponent::user('id') 

// From inside a controller 
$this->Auth->user('id'); 

आप की तरह कुछ करने के लिए सक्षम होना चाहिए:

// layout 
<?php if(AuthComponent::user('name')): ?> 
    Welcome <?php echo AuthComponent::user('name'); ?> 
<?php else: ?> 
    Welcom anon, Log in? 
<?php endif; ?> 
+0

धन्यवाद एक बहुत! उसने जादू की तरह काम किया। – gosukiwi

+0

आपका स्वागत है! – Hoff

+0

मुझे लगता है कि यह बहिष्कृत किया गया है? मुझे 5.2 में ऐसा करने का प्रयास करने का अपवाद मिला। 5.2 पर जिन समाधानों के साथ मैं गया था, वह उपयोगकर्ता को दृश्य के साथ साझा करना था। – Grigio

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