2016-03-02 68 views
1

我试图通过基于8个可选输入的项目模型检索项目集合。Laravel 4.2雄辩动态查询

我将命名可选输入,如'项目名称','项目代码','项目颜色',并且希望能够仅将完整的输入用作我的查询中的where子句。

我发现一个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(); 

我得到一个很有启发性\数据库\ 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