Я делаю свой самый первый проект Laravel (и программирование вообще).Я хочу сделать многопользовательскую систему аутентификации всего двумя таблицами: пользователи и роли. Коды таблиц показаны ниже: пользователи
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->integer('role_id')->unsigned();
$table->foreign('role_id')->references('id')->on('roles');
$table->string('password');
$table->rememberToken();
$table->timestamps();
роли
$table->increments('id');
$table->string('role');
Аутентификация реализована с помощью команды laravel
php artisan make:auth
Я создал midllewares admin, user1, user2 и user3 с помощью команды laravel
php artisan make:midlleware
Как реализовать назначение промежуточного программного обеспечения на основе role_id из таблицы пользователей, которая назначается пользователю во времяпостановка на учет?У меня была идея сделать что-то вроде этого: в HomeController
public function __construct()
{
if($this->role_id=="1"){
$this->middleware('admin'); }
if($this->role_id=="2"){
$this->middleware('user0'); }
if($this->role_id=="3"){
$this->middleware('user1'); }
if($this->role_id=="4"){
$this->middleware('user2'); }
}
Но у меня есть ошибка Неопределенное свойство: App \ Http \ Controllers \ HomeController :: $ role_id
Затем я создал __toStringметод в Controller
public function __toString()
{
return $this->role_id;
}
Я пытаюсь отобразить $ this, чтобы увидеть его формат, я получил ошибку Метод App \ Http \ Controllers \ HomeController :: __ toString () не должен выдавать исключение, пойман ErrorException: Undefinedсвойство: App \ Http \ Controllers \ HomeController :: $ role_id
Я на хороших треках?Или кто-нибудь может дать мне совет, как проще всего реализовать многопользовательскую аутентификацию, но без или с одной дополнительной таблицей (разрешениями)?
Спасибо