在我解释我想要做什么之前,首先可能值得一提的是以下信息。
我有3张桌子: - 用户 - 职位空缺 - user_vacancy
空缺可以有一个所有者,由空缺表上的外键user_id表示。
许多其他用户可以是团队成员,可以使用数据透视表user_vacancy
分配到同一空缺职位我试图通过Vacancy模型列出数据表中一个用户的所有空缺,无论他们是业主还是空缺的团队成员,我的代码如下:
VacanciesController.php:
public function get_user_vacancies() {
$user = User::find(auth()->id());
$vacancies = Vacancy::with(['team_members' => function($q) use ($user) {
$q->where('user_id', $user->id);
}])->where('user_id', $user->id);
$dataTables = Datatables::of($vacancies);
$dataTables->make(true);
}
Vacancy.php:
public function team_members()
{
return $this->belongsToMany('App\Models\Access\User\User')->withPivot('id', 'created_at', 'updated_at');
}
user.php的:
public function team_vacancies()
{
return $this->belongsToMany('App\Vacancy')->withPivot('id', 'created_at', 'updated_at');
}
我明白,为了加入“团队成员职位空缺”与“业主职位空缺”,我显然做错了什么,但我不太清楚如何才能做到正确。
我希望有人可以帮助我或指出我正确的方向。
答案 0 :(得分:1)
您应该在模型中为team_members
方法添加关联表的名称,如下所示:
public function team_vacancies()
{
return $this->belongsToMany('App\Vacancy', 'user_vacancy')->withPivot('id', 'created_at', 'updated_at');
}
并且vacancies
内的User.php
和teams
内的Vacancy.php
重命名方法会很高兴