2015-03-29 10 views
12

मैं सामान्य रूप से लैरावेल, एमवीसी और टेम्पलेटिंग इंजनों के लिए बिल्कुल नया हूं।लार्वेल 5: उपयोगकर्ता लॉग इन होने पर navbar बदलें

यदि कोई उपयोगकर्ता लॉग इन करता है तो मुझे कुछ नेविबार बटन और विकल्प दिखाना होगा: नोटिफिकेशन, लॉगआउट, प्रोफाइल इत्यादि ... और अन्यथा एक लॉगिन बटन।

किसी भी मदद से मैं इसे सही तरीके से कैसे संबोधित कर सकता हूं, इसकी बहुत सराहना की जाती है। यह है कि मैं क्या कर रहा हूँ पल में विचार कर रहा है:

  • एक User वस्तु हमेशा देखने के लिए पारित कर दिया है।
  • दृश्य जांचता है कि User सेट किया गया है (जिसका अर्थ यह लॉग है) नेविबार के लिए उचित आंशिक ब्लेड टेम्पलेट शामिल करने के लिए।

app.blade.php:

... 
@if (isset($user)) 
    @include('partials.navbarlogged') 

@else 
    @include('partials.navbar') 
... 

इस सबसे अच्छा तरीका है? आपके समय के लिए धन्यवाद!

+0

आप अपने आप को उपयोगकर्ता मॉडल बनाने के रह गए हैं या आप उपयोग कर रहे Laravel के उपयोगकर्ता मॉडल में बनाया गया? – Jbwilliams1

उत्तर

34

आप Laravel 5 के उपयोगकर्ता मॉडल में बनाया का उपयोग कर रहे हैं, तो आप बस

@if (Auth::check()) 
    //show logged in navbar 
@else 
    //show logged out navbar 
@endif 
+0

मैं डिफ़ॉल्ट ऑथ तंत्र का उपयोग नहीं कर रहा हूं, इसलिए यह काम नहीं करेगा, इसे मेरे कस्टम ओपनआईडी प्रमाणीकरण के साथ काम करने के लिए एक रास्ता खोजने की आवश्यकता होगी। लेकिन ऐसा लगता है कि मैं templating के मामले में अच्छी दिशा में हूँ। आपके समय के लिए धन्यवाद! – shardl

+0

मैं पूरे उपयोगकर्ता ऑब्जेक्ट को पास करने से बचूंगा, तो हो सकता है कि शायद एक छोटा सा हेल्थ सहायक हो? अपनी स्वयं की सहायक फ़ाइल बनाएं ताकि आप वहां के सभी गन्दा कोड कर सकें, इसलिए टेम्पलेट में आप कुछ ऐसा कर सकते हैं जैसे 'Auth :: चेक() ' – Jbwilliams1

+0

उस नई कक्षा के लिए अनुशंसित स्थान क्या होगा? वास्तव में पूरे उपयोगकर्ता ऑब्जेक्ट की आवश्यकता नहीं है। क्या सत्र (नाम, image_url, ईमेल, ...) में आवश्यक फ़ील्ड को स्टोर करना उचित होगा और सत्र में सीधे सत्र में पढ़ा जाएगा? एक बार फिर से धन्यवाद। – shardl

0

कर सकते हैं तुम भी Auth::guest()

Auth::guest() विधि सही या गलत रिटर्न उपयोग कर सकते हैं।

उदाहरण -

@if (Auth::guest()) 
    <a href="{{ route('login') }}">Login</a> 
    <a href="{{ route('register') }}">Register</a> 
@else 
    {{ Auth::user()->name }} 
    <a href="{{ route('logout') }}">Logout</a> 
@endif 
संबंधित मुद्दे