如何给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()) {
已经做到了。但是,我有两个不同用户类型的浏览器登录。他们两个都没有显示菜单条件 – YVS1102
@ YVS1102如果错误不再发生,那么问题是别的。也许'isDeveloper()'标志不能正常工作。 – Ohgodwhy