繁体   English   中英

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

[英]make $user is undefined Make the variable optional in the blade template. Replace {{ $user }} with {{ $user ?? '' }}

我有一页 sidebar.blade.php 我必须将此页面作为侧边栏导入另一个页面解决方案

" make $user is undefined 使变量在刀片模板中成为可选。将 {{ $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传递给您的每个视图,但您正在扩展侧边栏视图,请尝试使用 Laravel auth()帮助程序来获取用户 model。 你可以这样做:

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

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

您可以在 BaseController class __construct() function 中执行此操作:

//App\Http\Controller.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM