2017-04-10 29 views
2

このようなforeachループを書くと、メソッドall()はすべてのループを再度呼び出すか、一度だけ呼び出しますか?

foreach(User::all() as $user) { ... } 

私は知っている、all()関数は1回だけ実行されます。しかし、PHPでも?

このような変数にデータを保持する方が速いですか?

$users = User::all(); 
foreach($users as $user) { ...} 

答えて

2

コードの両方の部分がまったく同じ仕事をすると、ちょうど1 DBクエリを作成しますが、私は読みやすくするためこれでいいと思う:あなたの答えのための

$users = User::all(); 
foreach ($users as $user) { ... } 
+0

おかげで、その後、私が使用して私の最初の例ではクリーナーで、ブレードテンプレートでは1行は必要ありません;) – Phil795

+0

@ Phil795 DBまたはEloquentコードはテンプレートに入れてはいけません。理想的には、モデルに入れます。それが楽しいためのちょっとしたアプリならコントローラに置くことができます。また、私はあなたが将来このクエリーを別のものに変更することを確信しています。だから、とにかく2番目のコードと一緒に行くつもりです。 –

+0

これは単純なユーザーリストですが、表示するためだけにUserControllerを作成する必要はありません。 もちろん、 "大きな"ページはコントローラで別々になっています – Phil795

関連する問題