2015-09-17 1 views
1

У меня есть проект таблицу, как this-Laravel Query Builder - немного отличается Где Query

asdf

Я хочу, чтобы выбрать все данные с компанией ID 0 и 2 (компании ID может быть 1, 3,3,4,5,6, ...).

Итак, что я сделал в Laravel Query Builder это -

DB::table('project') 
     ->where('project.is_archived', '=', 0) 
     ->where('project.companyID', '=', 0) 
     ->orwhere('project.companyID', '=', 2) 
     ->get; 

Но это не работает.

Помогите пожалуйста?

ответ

2
DB::table('project') 
    ->where('is_archived', 0) 
    ->whereIn('companyID', [0, 2]) 
    ->get(); 

Это должно работать :)

1

В дополнение к решению Mimo, вы можете также комбинировать заявления с использованием обратных вызовов или специальных where методов.

Так что-то вроде:

DB::table('project') 
    ->where('is_archived', 0) 
    ->orWhere(function(Builder $query) { 
     $query 
      ->where('companyID', 0) 
      ->where('companyID', 2) 
    }); 

бы создать это заявление:

SELECT * FROM project WHERE (is_archived = 0) AND (companyID = 0 OR companyID = 2) 

Вы также можете сделать это с помощью простого ->where(function($query) {}) где вы изменить $boolean аргумент инкапсулированных where() заявления на «или '(что может привести к гораздо более сложным заявлениям)

См. Laravel 5.1 Docs for Parameter Grouping

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

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