如何仅从相关模型中获取 ID

时间:2021-02-10 06:21:29

标签: laravel eloquent

我有产品型号和尺寸型号。这是一个多对多的关系。 我现在想要做的是,我想返回具有相关尺寸模型 ID 数组的产品数据,如下所示。

<块引用>

"data": [ { "id": 1, "name": "サンプル 商品名", "product_code": "1ZS2fmMGEK", "material": "サンプル素材", "category_id": 1, "desc": "Tempore illum eum quia nihil iste neque eligendi。 Est velit maiores vero animi debitis。 Quae est nihil quo odio。 Consequatur dicta at quas iste velit。 Mollitia ut aut est perspiciatis.", "views": 0, "purchase_count": 0, "created_at": "2021-01-26T11:07:58.000000Z", "updated_at": "2021-01-26T11:07:58.000000Z", "尺寸": [1,2,3,4,5] },

所以我写了这样的代码。

public function getAll(Array $query):object
{
    try {
        $products = Product::query();
        if($query['sort']){
            $sort_field = $query['sort'][0];
            $order = $query['sort'][1];
            $products->sortable([$sort_field => $order]);
        }
        if($query['filter']){
            $field_name = key($query['filter']);
            $value = $query['filter'][$field_name];
            $products->where($field_name, 'like', '%'.$value.'%');
        }

        return $products->with(['sizes' => function($query){
                $query->select('sizes.id');
                 }])->paginate(10);

     
         
       

    } catch (\Throwable $e) {
        // 全てのエラー・例外をキャッチしてログに残す
        \Log::error($e);

        // フロントに異常を通知するため例外はそのまま投げる
        throw $e;
    }
}

然而,它返回的大小数据是这样的。

“尺寸”:[ { “身份证”:1 }

这不是我想要的,因为我想要一个像这样的 id 数组。

“尺寸”:[1, 2, 3, 4, 5]

所以我试图改变我的代码并写了这个,但没有运气。

return $products->with(['sizes' => function($query){
     $query->pluck('sizes.id');
  }])->paginate(10);

有人知道如何做到这一点吗?

1 个答案:

答案 0 :(得分:1)

<style>
    .wrapper{
        display:flex;
        flex-direction: column;
    }
</style>

<div id="wrapper">
        <div id="inner1">This is inner div 1</div>
        <div id="inner2">This is inner div 2</div>
</div>

这段代码对我有用

相关问题