2017-05-02 19 views
2

私はLaravel 5.4を初めて使用していて、クエリ操作に取り組んでいます。私は2つのテーブル「日付」と「モジュール」を持っているLaravelでカスタムクエリービルダーでeager loadingを使用する方法

$view = DB::table('blocks') 
    ->leftjoin('programmes', 'blocks.programme_id', '=', 'programmes.id') 
    ->select('blocks.id', 'blocks.programme_id', 'blocks.name', 'blocks.colour', 'blocks.year', 'programmes.title AS programme'); 

:今、私は以下のようになり、クエリビルダを使用してクエリを作成しました。各日付とモジュールはブロックに属します。

今、プログラム、日付、モジュールですべてのブロックを取得したいと思います。私はこれらのすべてを得るために()メソッドで使うことができることを知っています。しかし、私が知っているLaravelについては、各テーブルのモデルファイルがあり、それらの間に関係がある場合に限りwith()メソッドを使用できます。

しかし、モデルとその関係を定義することは望ましくありません。私はちょうど知りたいと思いますモデルを作成せずにプログラム、日付、モジュールを使ってブロックデータを取得し、モデル内の関係を定義するにはどうしたらいいですか?モデルなしでwith()メソッドを使用する他の方法はありますか?

ブロック日付とモジュールは条件付きですが、いつかブロックでこのテーブルのデータを取得したくありません。

私にこれを手伝ってください。

答えて

1

自動的には実行できません。熱心な読み込みはEloquentモデルのためだけであり、クエリビルダーでは使用できません。しかし、ほとんどの場合、Eloquentを使用してより複雑なクエリを取得することもできます(Eloquentを使用するときにも結合を使用することができます)ので、熱心な読み込みを使用することができます。

しかし、Eloquentをまったく使用したくない場合は、明らかに熱心な読み込みのためのカスタムメカニズムを作成する必要があります。

関連する問題