【发布时间】:2017-01-05 20:06:41
【问题描述】:
我正在为客户创建一个允许多个选项的搜索表单,包括客户的 ID(主键)。
$res = new \App\Customer;
当过滤不是主键的列时,一切正常:
>>> $res = \App\Customer::where('customer_name', 'like', "%frank%")->first();
=> App\Customer {#736}
>>> $res = \App\Customer::where('customer_name', 'like', "%frank%")->paginate(15)->first();
=> App\Customer {#749}
但是,过滤主键然后调用 paginate() 会返回一个空集合。
>>> $res = \App\Customer::where('id', 3)->first();
=> App\Customer {#669}
>>> $res = \App\Customer::where('id', 3)->paginate(15)->first();
=> null
simplePaginate() 工作正常,但是我想使用完整的paginate() 中的附加功能。
(是的,我知道在过滤主键时我只会得到一条记录,但是如果没有在集合上调用 paginate(),我的视图会中断,因为它使用诸如 firstItem()、@ 之类的分页方法987654329@、total()等)
【问题讨论】:
-
我刚刚在 v5.3.4 上尝试过,没有任何问题。你确定你没有做任何其他事情吗?
-
没有别的了,上面的输出直接来自 tinker。我什至创建了一个只有空模型的新项目并获得完全相同的输出。在 v5.3.2 上,刚刚更新到 v5.3.4 - 结果相同。
标签: php laravel pagination eloquent laravel-5.3