如果另一个模型的列具有特定值,则更改模型的列

时间:2019-01-29 08:27:50

标签: php laravel eloquent

所以,我有以下代码:

$query = Good::query();    
$query->with('availabilities_good.availability.truck');
$rows = $query->get();

我从数据库中抓取goods以及通过availabilities数据透视表与其关联的availabilities_good。 现在,availability模型具有truck关系。 卡车型号包含以下列:idcar_platevin。 有没有一种方法可以根据car_plate的列值即时更改good的值(同时急切加载)?

例如:如果good的{​​{1}}列的值为status,那么我想用active替换car_plate的字符,如下所示:隐藏它,否则,保持不变。

我知道我可以使用******数组上的foreach循环来执行此操作,但是我在问是否有一种方法可以在渴望加载时执行此操作。

谢谢。

1 个答案:

答案 0 :(得分:-1)

一种选择是使用原始数据库查询,如下所示:

Good::select(DB::raw('IF(good.status = 1,"*****", truck.car_plate) as car_plate'))->get();