public function view(User $user, Project $project) {
return $user->id === $project->user_id;
}
public function users()
{
return $this->belongsToMany(ProjectUser::class);
}
public function view(User $user, Project $project) {
return $user->id === $project->user_id || $project->users()->find($user->id);
}
"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db-admin.project_project_user' doesn't exist (SQL: select `project_users`.*, `project_project_user`.`project_id` as `pivot_project_id`, `project_project_user`.`project_user_id` as `pivot_project_user_id` from `project_users` inner join `project_project_user` on `project_users`.`id` = `project_project_user`.`project_user_id` where `project_project_user`.`project_id` = 1 and `project_users`.`id` = 2 limit 1)"
return $this->belongsToMany(User::class, "НАЗВАНИЕ ТАБЛИЦЫ приглашенных в проект пользователей");
return $this->belongsToMany(User::class, "НАЗВАНИЕ ТАБЛИЦЫ приглашенных в проект пользователей")->using(ProjectUser::class);
public function users()
{
return $this->belongsToMany(User::class, 'project_users', 'user_id', 'project_id');
}
Зачем вам доп модель ProjectUser для belongsToMany?
class Project{
public function users(){
return $this->belongsToMany(User::class, 'project_to_user', ....ключи);
}
class Project{
public function project_users(){
return $this->hasMany(ProjectUser::class);
}
}
class ProjectUser{
public function user(){
return $this->belongsTo(User::class);
}
}
То что вы пытаетесь сделать - называется один ко многим. Вы прописываете связку model Project -> model ProjectUser -> model User.
Промежуточная модель к pivot таблице тоже иногда может быть нужна если к связке нужно что то привязать. Например в том проекте что я пишу у меня есть связь пробирка с операцией над ней - и к этой связи надо привязать используемые реагенты и еще кучу всего - и я завел через using модель pivot таблицы