2016-08-29 3 views
0

私は顧客のID(プライマリキー)を含む複数のオプションを許可する検索フォームを作成しています。Laravel/Eloquentプライマリキーでフィルタリングしたときに空のコレクションを返すページネーム

$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()から追加機能を使用したいのですが、正常に動作します。

は(はい、私は私が唯一しかし、それはページ付け方法などfirstItem()lastItem()total()、などを使用して壊すセットに私の見解をpaginate()を呼び出すことなく、主キーにフィルタリング単一のレコードを取得します理解します)

+0

私はこれをv5.3.4で試したところ、問題はありませんでした。他に何もしていないと確信していますか? – Samsquanch

+0

これ以外は、上の出力はちょうどtinkerからのものです。私は空のモデルだけで新しいプロジェクトを作り、まったく同じ出力を得ました。 v5.3.2で、v5.3.4に更新されました。同じ結果です。 – Shawn

答えて

0

試してみてください。

$res = \App\Customer::where('id', 3)->paginate(15);

+0

これは上記の私のコードと同じです。私はテスト目的で返された最初のレコードを取得するために - > first()を追加しました。 – Shawn

0

なぜ私はそれがうまくいったのか分かりませんが、私の場所をModelのスコープメソッドに移動することで問題が解決しました。

関連する問題