2017-10-17 104 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类的位置,并根据需要调整命名空间。 –