2016-05-09 11 views
1

私はLaravel 5.2と雄弁なモデルを使用してデータベースとやりとりをしています。実際にクエリがサーバーに送信されるのはなぜですか?Laravel 5.2のクエリが遅延ロードされていますか?

私は検索/ソートバーを開発しています。ここでは、値の提示に基づいてクエリを作成する必要があります。たとえば、次のように(「」選択した値を全く意味しない)

Destination->パリエアポート - >「」仕分け>「」

だから私は今、もしelse文に基づいて、私のクエリを構築しています。充填された値に基づいて、多くの異なるクエリを構築する。すなわち、(上記の値の検索)

if(Destination != "" && Airport == "" && Sort == "") 
Flight::where(['destination']=>Destination)->get(); 

だから、私はこのアプローチの可能な組み合わせのそれぞれに対して、この9つの異なる時間をしなければなりません。私が疑問に思っているのは、クエリが実際に実行されるときです。それは、モデル上で - > get()メソッドを呼び出すときのようですか?これはどういう仕組みですか?もしそうなら、私はこのようなことをすることができ、それは私の人生をはるかに容易にするでしょう。 (擬似コード)

$query = Flight(); 
if(Destination != "") 
    $query->where(['destination'=>Destination] 
if(Airport != "") 
    $query->where(['airport'=>Airport]) 
etc... 

グーグルで問題があるかもしれません。あなたがget()all()またはfirst()メソッドを呼び出したときに

おかげで、

マット

答えて

2

は、クエリが実行されます。 Laravelが各要求ごとに実行したクエリの数と正確なクエリが構築された回数を確認するには、debugbarをインストールします。

composer.jsonにこれを追加します。

"require-dev": { 
    "barryvdh/laravel-debugbar": "^2.2", 

そしてcomposer updateを実行します。

+1

ありがとうございます。簡単な質問、まっすぐな応答。デバッガへのリンクもありがとう。 –

関連する問題