我有 3 个表:菜单 - 子菜单 - 用户 当我用菜单创建子菜单关系时没有问题 当创建用户时,我选择用户可以在菜单导航中看到的菜单和子菜单
使用此代码获取菜单:
$user=User::where('id',Auth::user()->id)->first();
$menus = $user->menu;
$view->with('menus', $menus );
$user=User::where('id',Auth::user()->id)->first();
$submenus = $user->submenu;
菜单正确显示,但我不知道如何显示子菜单(具有真正的父菜单和真正的用户)
迁移:
Schema::create('menus', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->timestamps();
});
Schema::create('menu_submenu', function(Blueprint $table) {
$table->integer('menu_id')->unsigned();
$table->integer('submenu_id')->unsigned();
$table->primary(['menu_id', 'submenu_id']);
$table->foreign('menu_id')->references('id')->on('menus')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('submenu_id')->references('id')->on('submenus')->onUpdate('cascade')->onDelete('cascade');
});
Schema::create('menu_user', function(Blueprint $table) {
$table->integer('menu_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->primary(['menu_id', 'user_id']);
$table->foreign('menu_id')->references('id')->on('menus')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
});
Schema::create('submenu_user', function(Blueprint $table) {
$table->integer('submenu_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->primary(['submenu_id', 'user_id']);
$table->foreign('submenu_id')->references('id')->on('submenus')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
});
我可以正确显示菜单,但子菜单有问题