小编git*_*ula的帖子

如何在 Laravel 中以对象数组的形式获取连接结果?

我一直在从事一个个人项目,用户可以在其中对不同的商店进行评分。其中,我正在处理两个表模式。

表:商店

  1. ID
  2. 店铺名称
  3. user_id(商店属于用户)

表:评级

  1. ID
  2. shop_id(外键)
  3. 评分
  4. 用户身份

现在我想使用 SQL 连接获取所有商店及其相应的评级。

 $shop = Shop::leftJoin('ratings', 'ratings.shop_id', '=', 'shops.id')
    ->select('shops.*', 'ratings.rating')->get();
    return response($shop);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到了回复,但同一商店的每个评级都会重复该回复。

[
    {
        "id": 1,
        "name": "manjil",
        "rating": 4
    },
    {
        "id": 1,
        "name": "manjil",
        "rating": 5
    },
    {
        "id": 1,
        "name": "manjil",
        "rating": 2
    }]
Run Code Online (Sandbox Code Playgroud)

我真正想要的是:

        [{
            "id": 1,
            "name": "manjil",
            "rating": [4,5,2]
        }]
Run Code Online (Sandbox Code Playgroud)

请 Laravel 极客帮忙:)

php mysql json laravel laravel-5

3
推荐指数
1
解决办法
2551
查看次数

标签 统计

json ×1

laravel ×1

laravel-5 ×1

mysql ×1

php ×1