【问题标题】:if - else does not work in laravel framework blade templatingif - else 在 laravel 框架刀片模板中不起作用
【发布时间】:2017-12-17 11:32:57
【问题描述】:

我的问题是,我有页面作为 Laravel 刀片模板。 如果用户登录,我的页面应该从主布局扩展。 如果用户没有登录,我的页面应该从另一个主布局扩展。

但是我的 if-else 语句不起作用

 <?php 
 if (Auth::check()){?>
 @extends('layouts.outside');
 <?php } else{ ?>
     @extends('layouts.admin');
 <?php }?>

我也试过blade if-else版本如下:

@if (Auth::check())
 @extends('layouts.outside')
@else
 @extends('layouts.admin')
@endif

它也没有工作。每次无论语句是真是假,if 和 else 语句中的块都会在后面起作用。因为没有if else。 我的意思是每次它调用 layouts.outside 一次,然后在它的底部再次使用 layouts.outside 加载同一页面,无论用户是否登录。

谢谢

【问题讨论】:

  • 您只是在else 声明的末尾忘记了{!同样在 else 语句的开头,您必须删除您的 php 开始标签
  • Auth::check() 不应该在视图中。通常,类似这样的内容会出现在 routes.phpfilters.php 或您创建的控制器中。只是一些思考的食物。

标签: php if-statement laravel blade


【解决方案1】:
@extends(Auth::user() ? 'layouts.outside' : 'layouts.admin');

【讨论】:

    【解决方案2】:
    <?php
    if (Auth::check()){
    Blade::extends('layouts.outside');
    <?php } else 
    extends('layouts.admin');
    }?>
    

    您在 else 中缺少一个 { 还有为什么那个 php 标签删除它

         <?php
            if (Auth::check()){
            Blade::extends('layouts.outside');
            } else{ 
            extends('layouts.admin');
            }
         ?>
    

    【讨论】:

    • 他还有个开头的标签要多!
    • 是的,我看到它只是通过点击帖子来快速。
    • @Soyaslan 请不要只做Stealth edits,如果您更改问题,请清楚地将其标记为编辑!就像知道这里的答案现在对您的问题是错误的,但对原来的问题是正确的!
    • 如果您使用冒号语法,避免此类问题更容易:&lt;?php if(): ?&gt; &lt;!-- stuff --&gt; &lt;?php else: ?&gt; &lt;!-- stuff --&gt; &lt;?php endif; ?&gt;
    • 或者完全使用刀片模板语法@if(...)@else(...)@endif
    猜你喜欢
    • 2016-04-21
    • 2014-11-15
    • 2016-03-11
    • 2013-06-04
    • 1970-01-01
    • 2017-07-31
    • 2013-02-03
    • 2018-05-28
    • 1970-01-01
    相关资源
    最近更新 更多