未定义$user 使变量在边栏选项卡模板中可选。将 {{ $user }} 替换为 {{ $user ?? }}

  • 本文关键字:user 替换 变量 未定义 选项 php laravel
  • 更新时间 :
  • 英文 :


我有一个页面sidebar.blade.php,我必须将此页面导入另一个页面作为侧边栏当我使用@extends将侧边栏导入到其他页面时,我这里有来自控制器的变量,它显示了解决方案的错误未定义变量

"make$user未定义使该变量在刀片模板中为可选变量。将{{$user}}替换为{{$user??''}">

我如何解决这个

此处的侧边栏代码

@if($user->role  =="handlers" )  
<li>
<a href="{{ url('/kontaktuppgifter') }}"><i class="fa fa-user fa-fw"></i> kontaktuppgifter{{-- <span class="fa arrow"></span> --}}</a>
</li>
@endif
<li>

由于您可能没有将变量$user传递到每个视图中,但您正在扩展侧边栏视图,请尝试使用Laravelauth()助手来获取用户模型。你可以这样做:

@if(auth()->user()->role  == "handlers")  
<li>
<a href="{{ url('/kontaktuppgifter') }}">
<i class="fa fa-user fa-fw"></i>
kontaktuppgifter
</a>
</li>
@endif

您还可以与所有视图共享$user变量,这样您就不必每次检索用户数据时都查询数据库。

您可以在BaseController类__construct()函数中执行此操作:

//AppHttpController.php
public function __construct()
{
$user = auth()->user();
view()->share('user', $user);
}

然后,您可以在视图中使用用户变量,就像您现在所做的那样:

@if($user->role  == "handlers")  
<li>
<a href="{{ url('/kontaktuppgifter') }}">
<i class="fa fa-user fa-fw"></i>
kontaktuppgifter
</a>
</li>
@endif

如果$user是当前用户,那么您应该为此使用Auth:

@if(auth()->user()->role  =="handlers" )  
<li>
<a href="{{ url('/kontaktuppgifter') }}"><i class="fa fa-user fa-fw"></i> kontaktuppgifter{{-- <span class="fa arrow"></span> --}}</a>
</li>
@endif

最新更新