【问题标题】:Getting data from pivot table using eloquent使用 eloquent 从数据透视表中获取数据
【发布时间】:2020-11-09 05:52:43
【问题描述】:

我有两个带有数据透视表的表

表用户

标识 |姓名 |电子邮件

餐桌饮品

标识 |名字

数据透视表 user_drinks

标识 |用户 ID |饮料ID |数量 |价格 |状态

我想从数据透视表中获取状态设置为 1 的所有用户和饮品以及他们的最新详细信息,即使用 user_Id 获取用户名,使用 drink_Id 获取饮品名称,然后从数据透视表中获取价格和数量.

【问题讨论】:

    标签: laravel eloquent laravel-query-builder


    【解决方案1】:

    在你的用户模型中放这个 //App\User.php

    public function drinks()
        {
            return $this->belongsToMany(Drink::class)->where('status',1);
        }
    

    在你的 DrinkModel 中放这个 //App\Drink.php

    public function users()
        {
            return $this->belongsToMany(Drink::class)->where('status',1);
        }
    

    然后在你的控制器中你可以像这样使用它

    $users = User::has('drinks')->get(); //to get all the user that has drinks column status set to 1
    
    foreach ($users as $user) {
        //you rest of code
    }
    

    【讨论】:

    • 谢谢 Tanvir,它可以获取数据透视表上状态设置为 1 的用户,但我还需要其他一些东西。我已经编辑了问题。
    • 那么认为您必须重新构建/重新规划您的餐桌。或者忘记了数据透视表。取一个模型,并把属于与 User 和 Drink 模型的关系。然后ypu可以轻松获取信息。如果您感到困惑并想尝试这种方式,请告诉我。
    猜你喜欢
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2016-04-11
    • 2017-07-25
    • 2016-11-21
    相关资源
    最近更新 更多