2015-03-29 24 views
12

Tôi hoàn toàn mới đối với các công cụ Laravel, MVC và templating nói chung.Laravel 5: Thay đổi thanh điều hướng nếu người dùng đã đăng nhập

Tôi cần hiển thị các nút và tùy chọn thanh điều hướng nhất định nếu người dùng đăng nhập như: Thông báo, Đăng xuất, Hồ sơ, v.v ... và nút Đăng nhập khác.

Bất kỳ trợ giúp nào về cách tôi có thể xử lý đúng cách này được đánh giá cao. Đây là những gì tôi đang xem xét tại thời điểm này:

  • Đối tượng User luôn được chuyển đến chế độ xem.
  • Chế độ xem sẽ kiểm tra nếu User được đặt (có nghĩa là đã đăng nhập) để bao gồm mẫu lưỡi dao một phần thích hợp cho thanh điều hướng.

app.blade.php:

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

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

Đây có phải là phương pháp tốt nhất? Cảm ơn bạn đã dành thời gian!

+0

Bạn có tạo ra mô hình tài khoản cho bản thân hoặc bạn đang sử dụng Laravel tích trong mô hình tài khoản? – Jbwilliams1

Trả lời

34

Nếu bạn đang sử dụng được xây dựng trong mô hình tài Laravel 5 của bạn chỉ có thể làm

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

Tôi không sử dụng các cơ chế Auth mặc định, do đó sẽ không hoạt động, sẽ cần phải tìm cách để làm cho nó hoạt động với xác thực OpenID tùy chỉnh của tôi. Nhưng có vẻ như tôi đang theo hướng tốt về mặt templating. Cảm ơn vì đã dành thời gian cho tôi! – shardl

+0

Tôi sẽ tránh đi qua toàn bộ đối tượng Người dùng xung quanh, vì vậy có thể một trình trợ giúp xác thực nhỏ được sắp xếp theo thứ tự? Tạo tệp trợ giúp của riêng bạn để bạn có thể làm tất cả các mã lộn xộn trong đó, vì vậy trong mẫu bạn có thể làm một cái gì đó như 'Auth :: check()' – Jbwilliams1

+0

Vị trí được đề xuất cho lớp mới đó là gì? Trong thực tế, toàn bộ đối tượng User không cần thiết. Nó sẽ là hợp lý để lưu trữ các lĩnh vực cần thiết từ nó trong phiên (tên, image_url, email, ...) và đọc từ phiên trực tiếp trong xem? Một lần nữa xin cảm ơn. – shardl

0

Bạn cũng có thể sử dụng Auth::guest()

Phương pháp Auth::guest() trả về true hoặc false.

Ví dụ -

@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 
Các vấn đề liên quan