Не делайте модель для своего Pivot; это не нужно Если у вас есть Модели как для роли, так и для пользователя, вы можете определить отношения как:
// User Model
public function roles(){
return $this->belongsToMany(Role::class, $table, $foreignKey, $localKey);
}
// Role Model
public function users(){
return $this->belongsToMany(User::class, $table, $foreignKey, $localKey);
}
Просто убедитесь, что значения $table
, $foreignKey
и $localKey
заменены значениями. Laravel может выяснить их, если имена таблиц / столбцов совпадают (roles_users
, user_id
, role_id
, id
и т. Д.)
Затем, если есть какие-либо данные, к которым вы хотите получить доступ из строк сводки, добавьте
return $this->belongsToMany(...)->withPivot(["column_1", "column_2", ...]);
Затем вы можете получить к ним доступ, используя аксессор ->pivot->{column}
:
foreach($user->roles AS $role){
dd($role->pivot->column_1); // Etc.
}
Существует множество пакетов, которые делают это для вас, например, Cartalyst Sentinel (https://cartalyst.com/manual/sentinel/2.0),, поэтому посмотрите их для получения дополнительной информации.