2016-03-02 2 views
1

Я пытаюсь получить набор элементов через мою модель элемента на основе 8 + дополнительных входов.Laravel 4.2 Яркий динамический запрос

Я буду называть необязательные входы, такие как «Название товара», «Код товара», «Цвет деталя» и хотел бы иметь возможность использовать только заполненные входы как предложения по моему запросу.

Я нашел Laracast, что я подумал, как объяснить, как я должен это достичь, но я не могу заставить его работать.

я вообразил, что код что-то вроде:

$query = Item::select(); 

if(Input::has('name')) { 
    $query->where('ItemName', Input::get('name')); 
} 

if(Input::has('code')) { 
    .... 
} 

$query->get(); 

Я проверил мой презумпций со следующим кодом.

Если я использую следующий код:

$query = Item::select()->where('ItemCode', '0605')->get(); 

Я получаю коллекцию из 5 элементов, возвращенных как ожидалось, но если я использую следующий код:

$query = Item::select(); 
$query->where('ItemCode', '0605')->get(); 

Я получаю Осветите \ Database \ Объект Eloquent \ Builder вернулся, а не набор элементов, как я ожидал.

Может ли кто-нибудь увидеть, что я делаю неправильно, или посоветовать мне, какой правильный способ достичь этого?

+0

Что именно вы хотите достичь? –

+0

@AlexeyMezenin извинился за то, что не сделал этого яснее, я внесла поправки в свой вопрос, чтобы попытаться продемонстрировать то, что я надеялся достичь. – Joe1992

ответ

1

Сумасшедшая мысль, но для того, чтобы быть уверенным. Может, ты хочешь этого?

$query = Item::select(); 

if(Input::has('name')) { 
    $query->where('ItemName', Input::get('name')) 
} 

if(Input::has('code')) { 
    .... 
} 

$query = $query->get(); 
+0

Трещил его, как странно, меня раздражает, что я не пробовал это! Большое спасибо! – Joe1992

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