【发布时间】:2016-03-02 13:39:01
【问题描述】:
我正在尝试通过基于 8 个以上可选输入的项目模型检索项目集合。
我将命名可选输入,例如“项目名称”、“项目代码”、“项目颜色”,并希望能够仅使用已完成的输入作为查询中的 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();
我得到一个 Illuminate\Database\Eloquent\Builder 对象,而不是我期望的项目集合。
谁能看到我做错了什么或建议我实现这一目标的正确方法是什么?
【问题讨论】:
-
你到底想达到什么目的?
-
@AlexeyMezenin 很抱歉没有让这一点更清楚,我已经修改了我的问题以尝试展示我希望实现的目标
标签: php laravel model-view-controller orm eloquent