【问题标题】:How can I access this value in a pivot table (Laravel)?如何在数据透视表(Laravel)中访问此值?
【发布时间】:2016-11-14 23:01:33
【问题描述】:

我正在构建一个简单的购物车系统,使用 Laravel 和 Vue.js 来销售照片。每张照片都有多种尺寸,每种尺寸的价格都不同。

我有以下表格:

Photos
 - id
 - title

Sizes
 - id
 - dimensions

Photos_Sizes
 - id
 - photo_id
 - size_id
 - price

我正在使用 Vue.js 对我的购物车控制器进行 API 调用以操纵购物车。当用户单击 Add to Basket 按钮时,它会传递 photo_id 和 size_id。自然,我想从数据库而不是客户端获取所选商品的价格,以防止任何厚颜无耻,这自然意味着查询数据透视表。

我的问题是,使用传递给控制器​​的两个 id,我如何才能在数据透视表中访问正确的价格值?

【问题讨论】:

    标签: php laravel laravel-5.1


    【解决方案1】:

    在照片和尺寸的关系上,添加->withPivot('price') 然后,一旦您有了结果集,您就可以使用$size->pivot->price 访问该字段

    【讨论】:

    • 我已经用价格轴设置了我的模型。我想我的问题是我如何真正获取结果集,然后我可以使用 $size->pivot->price 访问?
    • 如果你有单个对象,那么是的,否则你需要先遍历集合。
    【解决方案2】:

    您可以像这样在控制器中使用查询生成器:

    public function price(Request $request)
    {
    
        $row = DB::table('Photos_Sizes')
            ->where('photo_id', $request->input('photo_id'))
            ->where('size_id', $request->input('size_id'))
            ->first();
    
        return Response::create($row->price, 200);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      相关资源
      最近更新 更多