If you do this you get an error:
<p>@if($foo)@if($bar)test@endif@endif</p>
And if you do this, you get <p> test </p>
, adding too much whitepace:
<p>@if($foo) @if($bar)test@endif @endif</p>
Is there a way to avoid this?
If you do this you get an error:
<p>@if($foo)@if($bar)test@endif@endif</p>
And if you do this, you get <p> test </p>
, adding too much whitepace:
<p>@if($foo) @if($bar)test@endif @endif</p>
Is there a way to avoid this?
this appears to be getting a lot of search traffic so I figured I'd add an update to share how I'm handling this these days. Basically, it's a little more code but it ends up being stupid simple and very clean:
@if($foo)
<p>Test</p>
@elseif($bar)
<p>Test2</p>
@else
<p>Test3</p>
@endif
The moral of the story is when you're working with blade, don't try to cram a lot of conditionals within elements. Rather, have the result of the conditional contain the element. It's clean, easy to read, and with only a few more characters spent.
Try with a ternary operator, there is no whitespace control in Laravel
<p>{{ $foo ? ($bar ? 'test' : '') : ''}}</p>
You can add {{""}}
in between the code you want to close or connect without space.
<p>@if($foo)@if($bar)test@endif{{""}}@endif</p>
You could always use the hedronium/spaceless-blade package on packagist to add this functionality to Blade.
foreach loop
, still getting the spaces –
Casting {% spaceless %}
and {% endspaceless %}
, despite the fact that its tag syntax employs opening and closing delimiters ({%
and %}
). In other words, the suggested solution addresses a different problem. –
Eulaeulachon this appears to be getting a lot of search traffic so I figured I'd add an update to share how I'm handling this these days. Basically, it's a little more code but it ends up being stupid simple and very clean:
@if($foo)
<p>Test</p>
@elseif($bar)
<p>Test2</p>
@else
<p>Test3</p>
@endif
The moral of the story is when you're working with blade, don't try to cram a lot of conditionals within elements. Rather, have the result of the conditional contain the element. It's clean, easy to read, and with only a few more characters spent.
<span>
. Basically the same solution. Thank you for your answer! –
Hynes As far as I know there is no spaceless
tag in Blade. If you want to use standard Blade tags you will have extra spaces. There is a github discussion with proposal for new tag
value="@error('title'){{old('title')}}@else{{''}}@isset($myBook->title){{$myBook->title}}@endisset{{''}}@enderror">
this works for me.
© 2022 - 2024 — McMap. All rights reserved.
<span>
. Basically the same solution. Thank you for your answer! – Hynes