Blade 布局中的条件内容 Laravel
Conditional Content in Blade Layouts Laravel
我有一个 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>;
?>
是否有 better/cleaner 编码方式?
如果您想return根据身份验证不同的内容,您将无法避免检查用户的身份验证状态。
但是,当您使用 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
我有一个 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>;
?>
是否有 better/cleaner 编码方式?
如果您想return根据身份验证不同的内容,您将无法避免检查用户的身份验证状态。
但是,当您使用 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