mercredi 4 septembre 2019

laravel hasOne but multiple same ids

I have vehicles table. (id, name, make)

I have vehicle_prices table (id, vehicle_id, mileage, price)

Now, It's possible that in vehicle_prices, i might have the same vehicle_id multiple times, but all of them with different mileage. Because vehicle prices differ depending on mileage. So I have unique index on vehicle_id and mileage. Because of that multiple vehicle_id in vehicle_prices, I decided to use hasMany relationship. So here is something I am doing.

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

The thing now is that $vehicle->prices now is an array which will always have 1 object in there. why is it not just an object instead of array? I guess that's because of hasMany relationship.

Should I have hasMany or change it to hasOne even though vehicle_id might get repeated in vehicle_prices?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire