Я работаю над созданием формы поиска для клиентов, которая позволяет использовать несколько опций, включая идентификатор клиента (первичный ключ).Laravel/Eloquent Paginate возвращает пустую коллекцию при фильтрации первичного ключа
$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()
, lastItem()
, total()
и т.д.)
Я только что попробовал это на v5.3.4 и не имел проблем. Вы уверены, что не делаете ничего другого? – Samsquanch
Ничего другого, вышеупомянутый выход прямо из вола. Я даже создал новый проект, в котором нет ничего, кроме пустой модели, и получаю точно такой же результат. Был на v5.3.2, только что обновлен до v5.3.4 - тот же результат. – Shawn