2015-03-29 30 views
12

Laravel, MVC ve genellikle havalı motorlara tamamen yeniyim.Laravel 5: Kullanıcı kayıt edildiğinde navbar değiştir

Kullanıcı, örneğin: Bildirimler, Oturum Açma, Profil, vb. Ve başka bir Oturum Açma düğmesi gibi giriş yaptıysa, belirli navbar düğmelerini ve seçeneklerini göstermem gerekir.

Bunu doğru şekilde nasıl ele alabileceğimiz konusunda her türlü yardım büyük beğeni topluyor. Bu şu anda düşünüyorum budur:

  • A User nesne daima görünümüne geçirilir.
  • Görünüm, navbar için uygun kısmi blade şablonunu içermek üzere User öğesinin ayarlandığını (yani oturum açmış olup olmadığını) denetler.

app.blade.php:

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

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

bu en iyi yöntem var mı? Zaman ayırdığınız için teşekkürler! sadece

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

Kendinizi Kullanıcı model oluşturmak mı yoksa kullandığınız laravel en kullanıcı modeli inşa? – Jbwilliams1

cevap

34

Eğer laravel 5 en kullanıcı modeli inşa kullanıyorsanız Ayrıca Auth::guest()

Auth::guest() yöntem true veya false döndürür kullanabilirsiniz.

Örnek -

@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 
+0

Varsayılan Auth mekanizmalarını kullanmıyorum, bu yüzden işe yaramayacak, özel OpenID kimlik doğrulamasıyla çalışmasını sağlayacak bir yol bulması gerekecek. Ama şimşek açısından iyi yönde olduğum görülüyor. Zaman ayırdığın için teşekkürler! – shardl

+0

Tüm Kullanıcı nesnesini etrafından geçirmekten kaçınmalıyım, bu yüzden küçük bir auth yardımcısı sırayla mı? Oradaki tüm dağınık kodları yapabilmeniz için kendi yardımcı dosyalarınızı oluşturun, böylece şablonda “Auth :: check()” gibi bir şey yapabilirsiniz. – Jbwilliams1

+0

Bu yeni sınıf için önerilen konum ne olurdu? Aslında, tüm Kullanıcı nesnesine ihtiyaç yoktur. Sitedeki gerekli alanların oturumda saklanması mantıklı mıdır (isim, image_url, email, ...) ve görüşten doğrudan oturumdan okunabilir mi? Tekrar teşekkürler. – shardl

0

yapabilirsiniz