我有一个页面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