我正在为客户创建一个允许多个选项的搜索表单,包括客户的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()
,我的视图会因为使用{{1}这样的分页方法而中断}},firstItem()
,lastItem()
等。)
答案 0 :(得分:0)
尝试:
$res = \App\Customer::where('id', 3)->paginate(15);
答案 1 :(得分:0)
我不确定它为什么会起作用,但是将我的位置转移到模型上的范围方法中可以解决问题。