2017-02-11 13 views
0

Я пытаюсь сделать этот запрос с застройщиком Laravel запроса, но я не понимаю, как я могу это сделать:Laravel: не удалось построить несколько запросов orWhere с застройщиком Laravel запроса

запрос

select * from `data_table_1486794412` where (`column_2` = '2014' or `column_2` = '2015') and (`column_1` = 'GNDU') 

Мой код:

$dbObj = DB::table($datatableName->dataset_table); 
$dbObj->orWhere('column_2','2015'); 
$dbObj->orWhere('column_2','2015'); 
$dbObj->where(array('column_1','GNDU')); 

Laravel Генерация Q uery:

select * from `data_table_1486794412` where `column_2` = ? or `column_2` = ? and (`column_1` = ?) 

Моей таблица

data_table_1486794412

ответ

2

Для того, чтобы сгруппировать ИНЕК так, что они окружены скобками вы должны передать функцию обратного вызова для где() вызова ,

Следующий код должен сделать трюк:

$dbObj = DB::table($datatableName->dataset_table); 
$column1 = 2015; 
$column2 = 2016;  

$dbObj->where(function($query) use ($column1, $column2) { 
    $query->orWhere('column_1',$column1); 
    $query->orWhere('column_2',$column2); 
}); 
$dbObj->where(array('column_1','GNDU')); 
+0

мы можем передать дополнительный Params с анонимной функцией? wirth '$ query, $ extra' –

+0

Какие параметры вы хотите передать? –

+0

, что значения каждого столбца поступают из отдельного var. означает 2015 и 2014 год –

0

я думаю, что работа

$dbObj = DB::table($datatableName->dataset_table); 
$dbObj->orWhere('column_2','2015')->orWhere('column_2','2015')->where(array('column_1','GNDU')) 
+0

Я использую 'orWhere' в цикле. можете ли вы рассказать, как я могу использовать его в цикле. Потому что '2014' и' 2015' идут в форме 'array' –

0

я использую orWhere в цикле. можете ли вы рассказать, как я могу использовать его в цикле. Потому что 2014 и 2015 годы идут в форме массива.

Вы можете использовать, где вместо цикла, где вы можете передать в массиве:

$dbObj = DB::table($datatableName->dataset_table); 
$dbObj->where('column_1', 'GNDU')->whereIn('column_2', $yourArray)->get(); 

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

  • Нет связанных вопросов^_^