Укажите вашу сводную таблицу в отношениях. Laravel по умолчанию принимает admin_role
в качестве сводной таблицы, потому что у вас есть Admin
и Role
модели
Роль класса
protected $table = 'pjt_roles';
public function Admin(){ // should be admins() for better readability
return $this->belongsToMany(Admin::class, 'pjt_role_admin');
}
Администратор класса
public function Role(){ // should be roles() for better readability
return $this->belongsToMany(Role::class, 'pjt_role_admin');
}
Для определения имени таблицы
Eloquent присоединится к двум связанным моделям
имена в алфавитном порядке. Тем не менее, вы можете переопределить это
условность. Вы можете сделать это, передав второй аргумент
принадлежит метод ToMany.
Выборка данных
$admin = Admin::find(1);
$roles = $admin->Role; // should change to roles() in relationship for better readability
Сохранить
$admin->Role()->attach($roleId);
подробности https://laravel.com/docs/5.4/eloquent-relationships#many-to-many