我的logincontroller在路径中
app\Http\Controllers\Auth\LoginController.php
,我有两个方法,其中包含以下代码:
public function authenticated(Request $request, $user)
{
$user = Auth::user();
$user_role = UserRole::where('user_id', $user->id)->with(['role'])->first();
$menu_role = MenuRole::where('role_id', $user_role->role_id)->with('menu')->get();
# Add user role to session
session(['role' => $user_role->role->name]);
foreach ($menu_role as $key => $value) {
if ($value->menu->hidden == 'false') {
if ($value->menu->parent_id == 0) {
$this->parent_menu[$value->id] = Menu::where('id', $value->menu_id)->get()->first();
} else {
$this->child_menu[$value->id] = Menu::where('id', $value->menu_id)->get()->first();
}
}
}
self::buildMenu();
}
和
private function buildMenu()
{
$data = "";
foreach ($this->parent_menu as $key => $pm) {
$data .= '<a href="'.$pm->url.'" data-id="'.$pm->id.'"> '.$pm->label.' </a>';
$data .= '<ul class="parent-menu-label">';
foreach ($this->child_menu as $kkey => $cm) {
if ( (string) $pm->id == $cm->parent_id) {
$data .= '<li class="child-menu-label">';
$data .= '<a href="'.$cm->url.'" data-id="'.$cm->id.'"> '.$cm->label.' </a>';
$data .= '</li>';
}
}
$data .= '</ul>';
}
session(['sidebarmenu' => $data]);
}
在上面的代码中,我将角色名称和菜单存储在会话中
以及master.blade.php
我以这种方式在侧边栏中显示
{!! session('sidebarmenu') !!}
master位于此处resources\views\layouts\master.blade.php
现在我有了系统用户模块
路线在此处Modules\SystemUsers\start.php
其中包含路线
Route::resource('systemusers', 'Modules\SystemUsers\Http\Controllers\SystemUsersController');
我在这里Modules\SystemUsers\Http\Controllers\SystemUsersController.php
具有返回索引的方法
public function index()
{
return view('systemusers::index');
}
索引位于此处Modules\SystemUsers\Resources\views\index.blade.php
这扩展到master.blade.php
显示了我在myprojectdomain/home
侧边栏时的问题,但是当我在模块myprojectdomain/systemusers
中时,该边栏不是,会话为空。
为什么当我进入模块并扩展到模块外部的master.blade.php
时,它为null?
,会议应该是全球性的吗?应该在任何地方访问它?
有人可以向我解释一下并给出解决方案吗?
PS
我正在使用此软件包创建模块。 https://nwidart.com/laravel-modules/v3/introduction