如何给AUTH条件laravel 5中间件

问题描述:

我有一个与Frontend称为中间件,中间件的使用情况显示,我与laravel-menu如何给AUTH条件laravel 5中间件

<?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); 
// } 
    }  
} 

所以创建菜单,我的问题是如何添加auth condition例如

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

但我的剧本上面auth没有工作。我得到这个错误

呼叫到空的成员函数isDeveloper()

,这里是我的用户模型

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'); 
    } 

} 

如何修正这个错误?对不起,我的英语不好 。

确保试图调用它的一个函数之前,用户登录:

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

已经做到了。但是,我有两个不同用户类型的浏览器登录。他们两个都没有显示菜单条件 – YVS1102

+0

@ YVS1102如果错误不再发生,那么问题是别的。也许'isDeveloper()'标志不能正常工作。 – Ohgodwhy