2017-07-17 4 views
1

ich eine Middleware, die Menü aufgerufen haben, geben wird die Nutzung des Zeigens mit Frontend, dass Middleware, die ich mit laravel-menuWie Auth Zustand in Laravel 5 Middleware

<?php 

namespace App\Http\Middleware; 

use Closure; 
use Menu; 
use App\Module as modelmodule; 
use auth; 
class Frontend 
{ 

    public function handle($request, Closure $next) { 
     Menu::make('sidebar', function($menu){ 
      $menu->add('Main Menu',array('class' => 'header')); 
       //USER// 
       $menu->add("User Control",array('nickname' => "user",'class'=>'treeview')) 
        ->append(' <b class="caret"></b>') 
        ->prepend('<span class="glyphicon glyphicon-user"></span> '); 
       $menu->user->add('Daftar User','user/list'); 
       $menu->user->add('Tipe User','user/type'); 
       //Product// 
       $menu->add("Product",array('nickname' => "product",'class'=>'treeview')) 
        ->append(' <b class="caret"></b>') 
        ->prepend('<span class="glyphicon glyphicon-list"></span> '); 
       $menu->product->add('Product List','user/list'); 
       //About// 
       $menu->add("About Us",array('nickname' => "about")) 

        ->prepend('<span class="glyphicon glyphicon-list"></span> '); 

     }); 
      return $next($request); 
// } 
    }  
} 

so, meine Frage erstellen, wie auth condition hinzufügen zum Beispiel

if(auth()->user()->isDeveloper()) { 
      $menu->add("About Us",array('nickname' => "about")) 
     ->prepend('<span class="glyphicon glyphicon-list"></span> '); 
} 

aber mein Skript oben mit auth arbeiten nicht. Ich erhalte diese Störung

Aufruf eine Funktion isDeveloper Mitglied() auf null

und hier Modell meiner Benutzer

class User extends Authenticatable 
{ 
    use Notifiable; 

    protected $fillable = [ 
     'name', 'email', 'password','type','subscribestatus','usercode' 
    ]; 

    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 

    public function isDeveloper() 
    { 
     return ($this->type == 'TP001'); 
    } 

} 

ist, wie der Fehler beheben? Entschuldigung für mein schlechtes Englisch .

Antwort

1

Sicherstellen, dass der Benutzer angemeldet ist, bevor Sie eine Funktion nennen:

if (auth()->check() && auth()->user()->isDeveloper()) { 
+0

bereits das tat. Aber ich habe mich in zwei Browsern mit unterschiedlichen Benutzertypen eingeloggt. Beide zeigten nicht das Menü mit der Bedingung – YVS1102

+0

@ YVS1102 Wenn der Fehler nicht mehr auftritt, dann ist das Problem etwas anderes. Vielleicht funktioniert das 'isDeveloper()' Flag nicht richtig. – Ohgodwhy

Verwandte Themen