【发布时间】:2018-10-23 20:32:07
【问题描述】:
当我尝试编写管理规则以阻止用户输入特定路线时,我收到此错误:此集合实例上不存在属性 [名称]。
用户模型
<?php
public function roles()
{
return $this->belongsToMany(Role::class, 'role_user', 'user_id', 'role_id');
}
public function isAdmin()
{
if ($this->roles->name == "Admin") {
return true;
}
return false;
}
管理中间件
public function handle($request, Closure $next)
{
if (Auth::check()) {
if (Auth::user()->isAdmin()) {
return $next($request);
}
}
return redirect('/');
}
路由和控制器
Route::group(['middleware' => 'admin'], function ()
{
Route::get('/home', 'HomeController@index')->name('home');
});
public function __construct()
{
$this->middleware('admin');
}
【问题讨论】:
-
转储
$this->roles。
标签: php laravel permissions admin middleware