我有一个maintenance
表,其中包含以下字段:id
,car_id
,type
和name
。
如何从maintenance
表中获取type = 'car wash'
但只有model_id = 5
的条目列表?
model_id
字段位于car
表中。包含以下字段的购物车表:id
,model_id
,engine_size
和color
。
如何使用Maintenance::where
获取model_id
表中匹配car
的条目列表? car_id
表中有maintenance
与car
表链接。
我需要做这样的事吗:?
return Maintenance::where('type', 'car_wash')->where(function($query) {
// get a list a maintenance where model_id = 5 in a car table
});
答案 0 :(得分:1)
假设您已经在维护模型上定义了cars()关系,您可以尝试这样的事情:
$model_id = 5;
$type = 'car_wash';
return Maintenance::whereHas('cars',function($query) use($model_id,$type) {
$query->where('model_id',$model_id)->where('type',$type);
})->get();
更新进一步的问题(如果$ model_id = 0则跳过):
return Maintenance::whereHas('cars',function($query) use($model_id,$type) {
if($model_id!=0){
$query->where('model_id',$model_id);
}
$query->where('type',$type);
})->get();
我没有测试过,但应该可以使用,否则请告诉我