Когда я пытаюсь написать правило администратора, чтобы запретить пользователям вводить определенный маршрут, я получаю эту ошибку: Свойство [имя] не существует в этом экземпляре коллекции.
Модель пользователя
<?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');
}