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