2017-10-17 100 views
1

我想從菜單和SubMenu表使用Eloquent模型而不是聯接來獲取數據。使用Eloquent從關係獲取數據

我Menucontroller

class MenuController extends Controller 
{ 
// Where ever you want your menu 
    public function menu() 
    { 

     $menu = Menu::all()->load('submenu'); 

    return view('menu',compact('menu')); 
    } 
} 

我的菜單模式是

use Illuminate\Database\Eloquent\Model; 
class Menu extends Model 
{ 


    public function submenu() 
    { 
     return $this->hasMany(SubMenu::class); 
    } 
} 

我的子模型是

use Illuminate\Database\Eloquent\Model; 
class SubMenu extends Model 
{ 
    public function menu() 
    { 
     return $this->belongsTo(Menu::class); 
    } 
} 

回答

1

使用with功能急於負荷​​從Menu,你可以檢查文檔here

class MenuController extends Controller 
{ 
    public function menu() 
    { 

     $menu = Menu::with('submenu')->all(); 
     return view('menu',compact('menu')); 
    } 
} 

在刀片式視圖,您可以訪問對象:

@foreach ($menu as $menu_obj) 
    <p>This is the menu: {{ $menu_obj }}</p> 
    <p>This is the submenu: {{ $menu_obj->submenu }}</p> 
@endforeach 
+0

同樣的錯誤 (1/1)FatalThrowableError 級 '應用程序\ HTTP \控制器\菜單' 中MenuController找不到 如果我使用return SubMenu:.php(line 18) at menuController-> menu() at call_user_func_array(array(object(MenuController),'menu'),array()) in Controller.php(line 55) –

+0

:get()在控制器函數中返回我的db數據沒有錯誤 –

+0

在你的類聲明之前,你必須導入Menu類 '使用App \ Menu;'檢查Menu.php類的位置,並根據需要調整命名空間。 –