2016-12-02 17 views
2

プロジェクト管理のLaravelフレームワークにウェブサイトを構築しています。 私の問題を購入する:私はモデルテーブル、サブモデルテーブルとサブサブモデルを持っています。サブモデルはモデルに属し、サブモデルはサブモデルに属する。しかし、私はサブモジュールとそのサブモジュールを使ってすべてのモジュールを監督することができるダッシュボードビューをいくつか持っていたいと思います。 しかし、ダッシュボードビューですべてのモデル(テーブル)にアクセスするのに問題があります。 私はすべてのモジュールタイプのコントローラを持っていますが、まだダッシュボードビューのコントローラはありません。Laravel単一のビューで複数のモデル/テーブルにアクセスする

ありがとうございました!

答えて

0

私は最善の方法は、両方の関係でeager loadのモデルになります推測:

Model::with('submodel', 'submodel.subsubmodel')->get(); 

ドット表記は、ここでnested eager loadingのために使用されています。

+0

私は申し訳ありませんが、正確にはどこに入れますか?あなたが問題を抱えていても、私は問題を抱えています。 –

+0

これをコントローラまたはモデルに入れる必要があります(この場合、コードを少し修正する必要があります)。 Laravelチュートリアルを読んだり、はじめにいくつかの紹介ビデオを見るのが良いでしょう。 –

0

あなたは$モデル - >サブモデルのようなモデルからサブモデルを得ることができる場合、その後、あなたは自分のダッシュボード用のコントローラを作成し、モデルビューで

$models = Model::all(); 
$return view('...')->with('models', $models); 

とダッシュボード・ビューを返すことができ、すべてのモデルを繰り返し処理します。反復処理では、サブモデルとそのサブモデルを繰り返し処理することもできます

@foreach($models as $model) 
    @foreach($model->submodels as $submodel) 
     @foreach($submodel->subsubmodels as $subsubmodel) 

     @endforeach 
    @endforeach 
@endforeach 
+0

$ model-> submodelsのように呼び出そうとすると、モデルの –

+0

の "submodels?>"という印字だけで、関数submodels(){return $ this-> hasMany(Submodel :: class) ;}? [Laravel relations](https://laravel.com/docs/5.3/eloquent-relationships#one-to-many) 編集:固定タイピングエラー – Cashbee

+0

申し訳ありませんが、私は 'public function submodules(){return $ this-> hasMany( 'App \ Submodule'); SQLSTATE [42S22]:列が見つかりません:1054不明な列 'submodules.module_id' in 'where節'(SQL:select * from 'submodules'から' submodules')を実行します。 'module_id'は1であり、' submodules'.module_id'はnullではありません)(View:D:¥Program Files¥wms¥www¥pmsl¥resources¥views¥module¥index.blade.php)。 これでsubmodules.module_idにアクセスしようとしましたが、submodules.modules_idにアクセスする必要があります –