或where子句-Laravel雄辩
我有一个疑问:或where子句-Laravel雄辩,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我有一个疑问: if($keyword){ array_push($where, ['name_en', 'LIKE', '%'.$keyword.'%']); } 问题是我有andname\u fr列,我需要使用或子句-array\u push($where,['name\u fr','LIKE','%'。$keyword.%')) 我不能使用->或where,因为我有许多动态搜索字段-它们可能存在或不存在 例如: if($fromPrice){ array_push($wh
if($keyword){
array_push($where, ['name_en', 'LIKE', '%'.$keyword.'%']);
}
问题是我有andname\u fr
列,我需要使用或子句-array\u push($where,['name\u fr','LIKE','%'。$keyword.%'))
我不能使用->或where
,因为我有许多动态搜索字段-它们可能存在或不存在
例如:
if($fromPrice){
array_push($where, ['price', '>=', $fromPrice]);
}
if($toPrice){
array_push($where, ['price', '<=', $toPrice]);
}
我需要通过另一个查询选择WHERE name_en LIKE%val%或name_fr LIKE%val%
有没有一种方法可以以某种方式使用where
,“OR”和类似的,包括$where
数组中的另一个值?来实现这一点,建议您按如下方式划分查询,不要将关键字
条件放在$where
数组中:
$query = Property::with(array(
'photos'=>function($query){
$query->select(['car_id', 'name']);
}
))->where($where);
if($keyword){
$query = $query->where(function ($query) use ($keyword) {
$query->where('name_fr', 'like', $keyword)
->orWhere('name_en', 'like', $keyword);
});
}
$cars = $query->paginate(10);
要实现这一点,建议您按如下方式划分查询,不要将关键字
条件放在$where
数组中:
$query = Property::with(array(
'photos'=>function($query){
$query->select(['car_id', 'name']);
}
))->where($where);
if($keyword){
$query = $query->where(function ($query) use ($keyword) {
$query->where('name_fr', 'like', $keyword)
->orWhere('name_en', 'like', $keyword);
});
}
$cars = $query->paginate(10);
你也可以一起去
$propertyQuery = Property::query();
if($keyword){
$propertyQuery->where(function($query) use ($keyword){
$query->where('name_fr', 'LIKE', '%'.$keyword.'%')->orWhere('name_en', 'LIKE', '%'.$keyword.'%');
});
}
$cars = $propertyQuery->paginate(10);
你也可以一起去
$propertyQuery = Property::query();
if($keyword){
$propertyQuery->where(function($query) use ($keyword){
$query->where('name_fr', 'LIKE', '%'.$keyword.'%')->orWhere('name_en', 'LIKE', '%'.$keyword.'%');
});
}
$cars = $propertyQuery->paginate(10);
问题是我还有另外一套where。我有$where['id'=>,''.]
和
(如果关键字存在)其中的关键字
类似于此列或关键字
类似于另一列。问题是我有另一组where。我有$where['id'=>,''.]
和
(如果关键字存在)其中的关键字
类似于此列或关键字
类似于另一列。问题是我有另一组where。我有$where['id'=>,''.]
和
(如果关键字存在)where关键字
类似于此列或关键字
类似于另一列。但是我发现我不能使用->where($where)->where(//关键字查询)如果我删除第一个查询Property::with
,那么按关键字的查询工作正常。有了它就没有了。没有关键字,第一次查询当然有效。好的,我用三个部分完成了它。首先检查if(count($where))
,然后应用它,2。检查关键字和最新执行,工作正常。谢谢:)。问题是我还有一套where。我有$where['id'=>,''.]
和
(如果关键字存在)where关键字
类似于此列或关键字
类似于另一列。但是我发现我不能使用->where($where)->where(//关键字查询)如果我删除第一个查询Property::with
,那么按关键字的查询工作正常。有了它就没有了。没有关键字,第一次查询当然有效。好的,我用三个部分完成了它。首先检查if(count($where))
,然后应用它,2。检查关键字和最新执行,工作正常。谢谢:)。