如何使用 laravel 5 中的 eloquent 从 3 表中获取一些数据?我有 3 个表,列表,卡片,用户列出模型public function card() { return $this->hasMany(Card::class); }卡片型号public function lists() { return $this->belongsTo(Lists::class); }public function member() { return $this->belongsToMany(User::class)->withPivot('status','user_role')->withTimestamps(); }用户模型public function card_member(){ return $this->belongsToMany(Card::class)->withTimestamps(); }我想在分配给特定用户的卡片中获取列表(例如 user_id :2)喜欢这个 JSOn 数据{ "id": 2, "boards_id": "1", "list_name": "List 2 B1 U1", "position": 2, "created_at": "2019-04-03 16:02:03", "updated_at": "2019-04-03 16:02:03", "card": [ { "id": 8, "lists_id": "2", "card_title": "Card 3 L2", "labels": null, "description": null, "start_card": null, "end_card": null, "position": 2, "is_archieved": false, "created_at": "2019-04-26 15:34:22", "updated_at": "2019-04-26 15:34:22" }, { "id": 9, "lists_id": "2", "card_title": "Card 4 L2", "labels": null, "description": null, "start_card": null, "end_card": null, "position": 3, "is_archieved": false, "created_at": "2019-04-26 15:34:25", "updated_at": "2019-04-26 15:34:25" }表结构: 列表:idboards_idlistnameposition卡片 :idlists_idcard_titleCard_user(数据透视表):idcard_iduser_id
1 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
让我们将关系名称从“成员”更改为“成员”,因为这是多对多关系。
public function members()
{
return $this->belongsToMany(User::class)->withPivot('status','user_role')->withTimestamps();
}
你可能会说:
$userId = 2;
$lists = List::with([
'card' => function ($query) {
$query->whereHas('members', function ($query) user ($userId) {
$query->whereKey($userId);
})
}
])
->whereHas('card.members', function ($query) use ($userId) {
$query->whereKey($userId);
})
->get();
所以我们只急切加载用户 ID 为 2 的卡片。
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消