Laravel Blade没有额外的空白?

Cit*_*zen 9 php laravel blade

如果你这样做,你会收到一个错误:

<p>@if($foo)@if($bar)test@endif@endif</p>
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你会得到<p> test </p>,增加太多的空白:

<p>@if($foo) @if($bar)test@endif @endif</p>
Run Code Online (Sandbox Code Playgroud)

有办法避免这种情况吗?

编辑:请参阅下面的答案以获取更新的回复.没有黑客或外部库,有一个干净的方法来做到这一点.

Ale*_*ero 29

尝试使用三元运算符,Laravel中没有空白控件

<p>{{ $foo ? ($bar ? 'test' : '') : ''}}</p>
Run Code Online (Sandbox Code Playgroud)

  • 为特定示例提供备用解决方案. (2认同)

小智 9

您可以{{""}}在要关闭或连接的代码之间添加,而无需空格。

<p>@if($foo)@if($bar)test@endif{{""}}@endif</p>
Run Code Online (Sandbox Code Playgroud)


Omr*_*mal 7

您总是可以使用packagist上的hedronium/spaceless-blade软件包将此功能添加到Blade.


Cit*_*zen 7

这似乎获得了大量的搜索流量,所以我想我会添加一个更新来分享我这些天来处理这个问题.基本上,这是一个更多的代码,但它最终是愚蠢的简单和非常干净:

@if($foo)
  <p>Test</p>
@elseif($bar)
  <p>Test2</p>
@else
  <p>Test3</p>
@endif
Run Code Online (Sandbox Code Playgroud)

这个故事的寓意是当你使用刀片时,不要试图在元素中填充很多条件.相反,条件的结果包含元素.它干净,易于阅读,只花了几个字符.