我是Web开发的新手,并且在第一个项目中使用laravel框架。我正在尝试定义一个动态的全局变量。
我的问题如下: 我想设置两种类型的应用程序用户。一个固定在特定分支上,第二个将选择一个分支。我已经在我的用户表中添加了一个branch_id列,它可以正常工作。该列中的零表示用户将在登录后选择其分支。我想要的是将branch_id存储到一个可以在任何地方(控制器,视图等)访问的全局变量。 我尝试使用Config,但是新值仅在当前代码块中可用。
{{Config :: set('pubvar.lbranch','Testing')}}
{{config('pubvar.lbranch')}}
在这方面,我需要帮助。示例代码将受到高度赞赏。
答案 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
。