用于@ if / @ endif间距问题的Laravel刀片语法

时间:2018-11-13 17:13:30

标签: laravel syntax laravel-blade

以下代码的刀片式语法是什么?

<?php if(...):?>abc<?php else:?>cde<?php endif;?>

代码 @if(...)abc @else ....不好,因为它在“ abc”代码之前和之后添加空格@if(...)abc @ endif(html字符串前后没有空格)产生错误...

谢谢

6 个答案:

答案 0 :(得分:2)

进行了更多研究,而且由于刀片中没有空格标签,因此似乎没有解决方案。我从某人那里找到了一个解决方案,该人将他的字符串包装在额外的hml标签中(这样很容易,因为他在标签前后放置空格,并且在标签si中使用无空格的字符串),但在我的情况下,我只需要一个字符串,前后都没有空格...我将采用旧的php方式...

答案 1 :(得分:0)

尝试一下:

@if(...) {{ 'abc' }} @else

答案 2 :(得分:0)

我在空格中遇到了类似的问题。
我使用的解决方法是:
将您的if语句放入php标记

@php
  $myVar = 'abc';
  if(...) $myVar = 'cde';
@endphp

然后回显定义的变量

{{$myVar}}

答案 3 :(得分:0)

解决方案

此问题的正确解决方案如下:

@if(1==1){{ '1' }}@endif

这种情况经常发生,并且会给代码的“空间敏感”部分(例如<option>标记中的值)带来问题。

@if(1==1) 1 @endif编译为以下代码,该代码显示数字周围的空白:

<?php if(1==1): ?> 1 <?php endif; ?>

解决方案代码将被编译为此代码:

<?php if(1==1): ?><?php echo e('1'); ?><?php endif; ?>

其中大部分解释了为什么它不会留出额外的空格。

答案 4 :(得分:0)

这是一种解决方法,但我仍然认为我们始终应该记住这是一个PHP环境... 因此,只需:

@php
    if(...) echo "abc";
    else echo "cde";
@endphp

答案 5 :(得分:-1)

正确的语法是:

@if(...)
   abc
@else
   cde
@endif

我从未见过这个多余的空间。