动态全局变量

问题描述 投票:0回答:2

我是Web开发的新手,并且在我的第一个项目中使用了laravel框架。我试图定义一个动态全局变量。

我的问题如下:我想设置两种类型的应用用户。一个固定到特定分支,另一个将选择一个分支。我已经在我的users表中添加了一个branch_id列,并且它正常工作。此列中的零表示用户将在登录后选择其分支。我想要的是将branch_id存储到一个可以在任何地方访问的全局变量(控制器,视图等)。我曾尝试使用Config,但新值仅在当前代码块中可用。

{{Config :: set('pubvar.lbranch','Testing')}}

{{config('pubvar.lbranch')}}

我需要以一种简单的方式帮助解决这个问题。示例代码将受到高度赞赏。

laravel
2个回答
0
投票

由于变量是依赖于登录的,因此最简单的解决方案是使用sessions。最简单的设置方法是在app/Http/Controllers/Auth/LoginController.php。添加这样的函数来覆盖vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php中的原始函数:

protected function authenticated(Request $request, $user)
{
    session('pubvar.lbranch','Testing');
}

您的代码,控制器,视图甚至模型中的任何地方都可以调用:

$branch = session('pubvar.lbranch');

或在意见中

{{ session('pubvar.lbranch') }}

如果没有值,调用session()助手将导致null


0
投票

Laravel视图作曲家可以帮助你。 您应该将此代码添加到您的app / Providers / AppServiceProvider.php。

view()->composer(['lbranch'], function($view) {
        $branch_id = auth()->user()->branch_id;
        $view->with([
            'brach_id' => $branch_id
        ]);
    });

或者你可以简单地使用:

{{ auth()->user()->branch_id }}
© www.soinside.com 2019 - 2024. All rights reserved.