@if/@endif间距issueif的Laravel刀片语法

@if/@endif间距issueif的Laravel刀片语法,laravel,syntax,laravel-blade,Laravel,Syntax,Laravel Blade,以下代码的类似blade语法是什么 <?php if(...):?>abc<?php else:?>cde<?php endif;?> abccde 代码 @如果(…)abc@else。。。。不好,因为它在代码@if(…)的“abc”前后都有一个空格abc@endif(html字符串前后无空格)生成错误 谢谢试试这个: @if(...) {{ 'abc' }} @else 做了更多的研究,看起来并没有解决方案,因为刀片上并没有空格标签。我从一个用额外的h

以下代码的类似blade语法是什么

<?php if(...):?>abc<?php else:?>cde<?php endif;?>
abccde
代码 @如果(…)abc@else。。。。不好,因为它在代码@if(…)的“abc”前后都有一个空格abc@endif(html字符串前后无空格)生成错误

谢谢

试试这个:

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

做了更多的研究,看起来并没有解决方案,因为刀片上并没有空格标签。我从一个用额外的hml标签包装字符串的人那里找到了一个解决方案(这很容易,因为他在标签前后都有空格,标签内的字符串是无空格的),但在我的例子中,我只需要一个前后都没有空格的字符串。。。我会走老路

正确的语法是:

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

我从来没有看到过不需要的空格。

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

@php
  $myVar = 'abc';
  if(...) $myVar = 'cde';
@endphp
然后回显定义的变量

{{$myVar}}

解决方案

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

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

这种情况经常发生,并使代码的“空间敏感”部分出现问题,例如
标记中的值

@if(1==1)1@endif
编译为以下格式,显示数字周围的空格:

<?php if(1==1): ?> 1 <?php endif; ?>
1
解决方案代码将编译为以下代码:

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


这很好地解释了为什么这不会产生额外的空间。

这是一个解决方案,但我仍然认为我们应该始终记住,这是一个PHP环境。。。 因此,简单地说:

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

我想了想,但是很难看;)。。。还测试了这没有任何区别,空间仍然被添加。。。abc=={{'abc'}}问题仍然是{{{}前后的空格!!你让我发笑D:谢谢你的代码片段,它可能会提供一些有限的、即时的帮助。一个恰当的解释将通过描述为什么这是一个很好的问题解决方案来极大地改进its,并将使它对未来有其他类似问题的读者更有用。请编辑您的答案以添加一些解释,包括您所做的假设。正确答案!是的,有空间。。。在if之前和之后添加一些内容(例如开括号和闭括号),并尝试在括号内无空格的地方获取内容。。。(@if(…)abc@endif)。必须在结尾后留一个空格,否则解析器将无法理解该单词。然后将该空间应用于结果。。。你能得到一个像(abc)这样的文本,其中括号在if语句之外,abs是then或else分支的结果吗?我认为,一个基本的额外标记应该可以帮助你使用blade指令实现你想要的