使用Eloquent从关系中获取数据

时间:2017-10-17 10:43:01

标签: laravel laravel-5 eloquent

我正在尝试使用Eloquent模型而不是join来从Menu和SubMenu表中获取数据。

我的菜单控制器

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 个答案:

答案 0 :(得分:0)

使用with功能急切加载Submenu中的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