首页 > 解决方案 > laravel 有一个但有多个相同的 id

问题描述

我有车辆表。(id, name, make)

我有 vehicle_prices 表(id, vehicle_id, mileage, price)

现在,有可能在 中vehicle_prices,我可能有vehicle_id多次相同的情况,但它们的里程都不同。因为车辆价格因里程而异。所以我有唯一的索引vehicle_id和里程。因为里面有多个vehicle_id vehicle_prices,我决定使用hasManyrelationship。所以这是我正在做的事情。

$vehicle = App\Http\Models\Vehicle::with([
            'prices' => function($query){
                $query->where('milleage', 1000)->latest('id')->first();
            })
        ])->where('id', 1)->first();

现在的问题是 $vehicle->prices now 是一个数组,其中总是有 1 个对象。为什么它不仅仅是一个对象而不是数组?我想那是因为hasMany关系。

我应该拥有hasMany还是将其更改为hasOne即使vehicle_id可能会重复vehicle_prices

标签: phplaravellaravel-5eloquent

解决方案


如果你想得到一个对象,只需使用:

 $vehicle->prices()->first();

文档


推荐阅读