2016-12-02 81 views
2

因此,我在Project Management的Laravel框架中構建了一個網站。 購買我的問題是:我有一個Models表,一個子模型表和一個subsubmodelstable。子模型屬於模型,子模型屬於子模型。但我想要有某種儀表板視圖,我可以在其中監視所有模塊及其子模塊和子模塊。 但我無法在儀表板視圖中訪問所有模型(表格)。 我有模塊類型的控制器,但沒有儀表板視圖。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); 

,遍歷所有模型。在迭代中,你還可以重複其子模型及其subsubmodels

@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 $這 - >的hasMany( '應用\子模塊'); }'和我通過了錯誤,但後來我得到了這個錯誤:SQLSTATE [42S22]:未找到列:1054未知列'子句'中的'submodules.module_id'(SQL:select * from'submodules' where'submodules' .module_id' = 1和'submodules'.'module_id'不爲空)(View:D:\ Program Files \ wamp \ www \ pmsl \ resources \ views \ module \ index.blade.php)。 它現在試圖訪問submodules.module_id,但它需要訪問submodules.modules_id –