如何使用eloquent在laravel中加入3个表?

如何使用 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"

      }

表结构: 列表:


id

boards_id

listname

position

卡片 :


id

lists_id

card_title

Card_user(数据透视表):


id

card_id

user_id


RISEBY
浏览 120回答 1
1回答

交互式爱情

让我们将关系名称从“成员”更改为“成员”,因为这是多对多关系。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 的卡片。
打开App,查看更多内容
随时随地看视频慕课网APP