当我是myprojectdomain / home侧边栏时,但当我在模块myprojectdomain / systemusers中时,侧边栏不

时间:2018-09-07 10:26:02

标签: php laravel-5.6

我的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

0 个答案:

没有答案