我正在尝试使用雄辩的关系模型在Laravel建立关系,它看起来像下面那个
users
id
email
projects
id
name
user_projects
user_id
project_id
role
我希望能够查询用户所属的项目,而不管他所拥有的角色。为此,我在我的用户模型中使用了以下内容。
class User extends Model {
public function allProjects() {
return $this->belongsToMany('App\ProjectRoles', 'user_projects', 'user_id', 'project_id');
}
}
但是由于这个原因,我的代码中出现了错误
Syntax error or access violation: 1066 Not unique table/alias: 'user_projects' (SQL: select `user_projects`.*, `user_projects`.`user_id` as `pivot_user_id`, `user_projects`.`project_id` as `pivot_project_id` from `user_projects` inner join `user_projects` on `user_projects`.`id` = `user_projects`.`project_id` where `user_projects`.`user_id` = 2)
我不确定如何在关系中创建连接查询以执行此操作。任何帮助,将不胜感激。我经历了雄辩的文档,但即使那些例子完全符合我的要求,也无法得到结果。
答案 0 :(得分:1)
您的belongsToMany
关系与错误的模型有关。通常,您的枢轴表没有模型,但即使您这样做,您的belongsToMany
关系也不会使用它。您的User
模型应与您的Project
模型相关。
你应该用这个:
class User extends Model {
public function allProjects() {
return $this->belongsToMany('App\Project', 'user_projects', 'user_id', 'project_id');
}
}