【问题标题】:Conditional Content in Blade Layouts LaravelBlade 布局中的条件内容 Laravel
【发布时间】:2015-08-12 22:14:18
【问题描述】:

我有一个 master.blade.php 文件,我在其中添加了

@include('layouts.navbar')

navbar.blade.php 有一些用于创建顶栏的代码。

如何根据用户是否登录在顶部栏中显示内容。我目前的做法是

<? 
  $user = Auth::user();
  if ($user)
    echo "<ul class="dropdown-menu">
            <li><a href="/myprofile">Profile</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="/auth/logout">Logout</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Nav header</li>
            <li><a href="#">Separated link</a></li>
            <li><a href="#">One more separated link</a></li>
          </ul>";
  else
    echo <a href ="signin">SignIn</a>;
?>

有没有更好/更简洁的编码方式?

【问题讨论】:

    标签: php laravel laravel-5 blade


    【解决方案1】:

    如果您想根据该状态返回不同的内容,您将无法避免检查用户的身份验证状态。

    但是,当您使用 Blade 模板时,您应该使用 Blade 条件标签而不是纯 PHP。如果您只对用户的状态感兴趣,也无需调用 Auth::user() - Auth::check() 就足够了。

    您的代码应如下所示:

    @if(Auth::check()) 
      <ul class="dropdown-menu">
        <li><a href="/myprofile">Profile</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="/auth/logout">Logout</a></li>
        <li role="separator" class="divider"></li>
        <li class="dropdown-header">Nav header</li>
        <li><a href="#">Separated link</a></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    @else
      <a href ="signin">SignIn</a>
    @endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-20
      • 2013-07-01
      • 2017-01-26
      • 2021-07-06
      • 1970-01-01
      • 2018-09-23
      • 2023-03-23
      • 2020-06-23
      相关资源
      最近更新 更多