如何在数组列表中使用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%%?