动态全局变量

时间:2019-04-26 07:12:15

标签: laravel

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

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

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

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

在这方面,我需要帮助。示例代码将受到高度赞赏。

2 个答案:

答案 0 :(得分: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 }}

答案 1 :(得分: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