如何在数组列表中使用Laravel Eloquent with LIKE语句?
我在数组中有一些条件,比如如何在数组列表中使用Laravel Eloquent with LIKE语句?,laravel,eloquent,laravel-5.3,Laravel,Eloquent,Laravel 5.3,我在数组中有一些条件,比如 $category = Input::get('category'); $cuisine = Input::get('cuisine'); $veg = Input::get('veg'); $trending = Input::get('trending'); $time = Input::get('time'); if($category) $conditions['category'] = $category;
$category = Input::get('category');
$cuisine = Input::get('cuisine');
$veg = Input::get('veg');
$trending = Input::get('trending');
$time = Input::get('time');
if($category) $conditions['category'] = $category;
if($cuisine) $conditions['cuisine'] = $cuisine;
if($veg) $conditions['veg'] = $veg;
if($trending) $conditions['trending'] = $trending;
我该怎么做
$list = Data::where($conditions)->where('cuisine','LIKE','%'.$cuisine.'%')->get();
是否可以在此语句中输入%之类的值
if($cuisine) $conditions['cuisine'] = $cuisine;
问题是,如果我想在其中添加('courine'、'LIKE'、'%'.$courine.'%')几个区域,它需要更新。在某些情况下,如果没有菜肴,一切都无法取回
我只想对烹饪数据执行LIKE语句。好的,您可以分部分执行:
$query = Data::where($conditions);
if($cuisine) {
$query->where('cuisine','LIKE','%'.$cuisine.'%');
}
$list = $query->get();
好吧,你可以分几个部分来做:
$query = Data::where($conditions);
if($cuisine) {
$query->where('cuisine','LIKE','%'.$cuisine.'%');
}
$list = $query->get();
当然,您可以通过创建: 例如:
$fields = ['category', 'cuisine', 'veg', 'trending', 'time'];
foreach ($fields as $field) {
if ($request->get($field)) {
$conditions[] = [$field, 'like', '%' . $request->get($field) . '%'];
}
}
$list = Data::where($conditions)->get();
文档中的另一个示例:
还可以将条件数组传递给where函数:
或者您可以使用:
当然,您可以通过创建: 例如:
$fields = ['category', 'cuisine', 'veg', 'trending', 'time'];
foreach ($fields as $field) {
if ($request->get($field)) {
$conditions[] = [$field, 'like', '%' . $request->get($field) . '%'];
}
}
$list = Data::where($conditions)->get();
文档中的另一个示例:
还可以将条件数组传递给where函数:
或者您可以使用:
你可以这样做
$query = DB::table('data');
$category = Input::get('category');
$cuisine = Input::get('cuisine');
$veg = Input::get('veg');
$trending = Input::get('trending');
$time = Input::get('time');
if($category) {
$query->where('category','LIKE','%'.$category.'%');
}
if($cuisine) {
$query->where('cuisine','LIKE','%'.$cuisine.'%');
}
if($veg) {
$query->where('veg','LIKE','%'.$veg.'%');
}
if($trending) {
$query->where('trending','LIKE','%'.$trending.'%');
}
if($time) {
$query->where('time','LIKE','%'.$time.'%');
}
$list = $query->get();
我希望你能理解。你可以这样做
$query = DB::table('data');
$category = Input::get('category');
$cuisine = Input::get('cuisine');
$veg = Input::get('veg');
$trending = Input::get('trending');
$time = Input::get('time');
if($category) {
$query->where('category','LIKE','%'.$category.'%');
}
if($cuisine) {
$query->where('cuisine','LIKE','%'.$cuisine.'%');
}
if($veg) {
$query->where('veg','LIKE','%'.$veg.'%');
}
if($trending) {
$query->where('trending','LIKE','%'.$trending.'%');
}
if($time) {
$query->where('time','LIKE','%'.$time.'%');
}
$list = $query->get();
我希望您能理解。为什么不将默认值指定为空值,因为它会像所有情况下的一样传入
$conditions['cuisine']= (isset($cuisine)&&$cuisine)) ? $cuisine : '';
为什么不直接将空白值指定为默认值,因为它将在所有情况下像一样传入
$conditions['cuisine']= (isset($cuisine)&&$cuisine)) ? $cuisine : '';
您必须将查询分配给某个变量:
$query = Data::where($conditions);
if($cuisine) {
$query = $query->where('cuisine','LIKE','%'.$cuisine.'%');
}
$list = $query->get();
您必须将查询分配给某个变量:
$query = Data::where($conditions);
if($cuisine) {
$query = $query->where('cuisine','LIKE','%'.$cuisine.'%');
}
$list = $query->get();
你到底想要什么?一些类似搜索的函数?你能解释一下吗?很难理解如果($CURINCE)$conditions['CURINCE']=$CURINCE,那么在本声明中('CURINCE'、'LIKE'、'%'.$CURINCE.'%')的什么地方可以做($CURINCE)$CARINCE.%');很抱歉,我仍然不明白您的意思。我想执行以下数据::where($conditions)->get();我不想在这里加上('courine','LIKE','%.$courine.'%')。那么,是否可以在$conditions['courine']变量上添加LIKE%%?您到底想要什么?一些类似搜索的函数?你能解释一下吗?很难理解如果($CURINCE)$conditions['CURINCE']=$CURINCE,那么在本声明中('CURINCE'、'LIKE'、'%'.$CURINCE.'%')的什么地方可以做($CURINCE)$CARINCE.%');很抱歉,我仍然不明白您的意思。我想执行以下数据::where($conditions)->get();我不想在这里加上('courine','LIKE','%.$courine.'%')。那么,是否可以在$conditions['courine']变量上添加LIKE%%?