2016-07-21 6 views
0

У меня есть запрос, как:Если условие запроса на основе в Laravel

$Category = DB::table('food') 
    ->select('food.Food_id','food.FoodName','categories.CategoryName') 
    ->join('categories','categories.Category_id','=','food.Category_id') 
    ->where('categories.CategoryName', '=','Breakfast') 
    ->get(); 

Но я хочу запрос на основе, если выполнено условие, что означает, что если Категория является завтрак, то только продукты питания, связанные с ограниченными возможностями показаны или IF Категория является Обед, тогда показаны только пищевые продукты, относящиеся к этой категории. Я использую laravel 5.2

+0

Это работает для вас, что вам нужно, в чем проблема? –

+0

Редактирование, сделанное @Kusum, содержит ошибки, пожалуйста, отмените его. – mastazi

+0

@ mastazi Могу ли я узнать, где я совершил ошибку? – Kusum

ответ

0

Попробуйте что-нибудь в этом роде. Вам не нужно делать запрос сразу. Вы можете объединить его несколькими шагами. Пока вы не выполните get(), find() или что-то похожее в конце, оно не будет возвращать результаты запроса, но только вид объекта построителя запросов, если я не ошибаюсь.

// You should probably send this as a method parameter so you can determine if you should get one, or the other category 
$cat = 1; 

$Category = DB::table('food') 
    ->select('food.Food_id','food.FoodName','categories.CategoryName') 
    ->join('categories','categories.Category_id','=','food.Category_id'); 
if($cat == 0){ 
    $Category = $Category->where('categories.CategoryName', '=','Breakfast');  
} 
if($cat == 1){ 
    $Category = $Category->where('categories.CategoryName', '=','Lunch'); 
} 
$Category = $Category->get(); 
+0

Это правда, что вы можете разбить запрос, как показано на рисунке, но в этом случае это кажется глупым, потому что вы можете просто сделать '[...] -> где ('categories.CategoryName', '=', $ cat); 'без какого-либо оператора if – mastazi

+0

Конечно, но это был как общий пример, так как я не знаю, что может быть содержимым переменной' $ cat' , Это может быть целое число или что-то еще, и, конечно, «переключатель» будет лучшим решением, но это просто показать, как это работает :) –

+0

Этот запрос приводит к обеим продуктам питания и завтрака, и обеда. –

Смежные вопросы