使用Eloquent从关系获取数据
问题描述:
我想从菜单和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);
}
}
答
使用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
同样的错误 (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) –
:get()在控制器函数中返回我的db数据没有错误 –
在你的类声明之前,你必须导入Menu类 '使用App \ Menu;'检查Menu.php类的位置,并根据需要调整命名空间。 –