Синтаксис лезвия Laravel для @if/@endif.
Каков подобный синтаксис блейда для следующего кода?
<?php if(...):?>abc<?php else:?>cde<?php endif;?>
код @if(...) abc @else .... не годится, так как он рекламирует пробел до и после "abc" код @if(...)abc@endif (без пробелов до и после html строка) генерирует ошибку...
Спасибо
7 ответов
Решение
Правильное решение этой проблемы будет следующим:
@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; ?>
Что в значительной степени объясняет, почему при этом не будет дополнительных пробелов.
Сделал немного больше исследований, и похоже, что нет никакого решения, поскольку в блейде нет пустого тега. Я нашел решение от кого-то, кто оборачивает его строку в дополнительные теги hml (так легко, поскольку он рекламирует пробелы до и после тега и строку внутри тега si spaceless), но в моем случае мне просто нужна строка без пробелов до и после... Я пойду по старому способу php пути...
Я столкнулся с аналогичными проблемами с пробелами.
Обходной путь, который я использую, это:
Поместите свое заявление if в теги php
@php
$myVar = 'abc';
if(...) $myVar = 'cde';
@endphp
а затем повторить определенную переменную
{{$myVar}}
Это обходной путь, но я все же думаю, что мы всегда должны помнить, что это среда PHP... Итак, просто:
@php
if(...) echo "abc";
else echo "cde";
@endphp
Я нашел решение, если есть проблема с пространством между @if () @ endif и @if. Я заменил @if () @endif на переменную {{$wardname}}, которая будет напечатана с использованием {{$wardname}} @ if, и ее устранен конфликт с @endif & @if
и прикладная логика вроде:
if($city->wardname!="") {
$wardname = "(".$city->wardname.")";
}else{
$wardname = "";
}
Реализовал это как: {{$wardname}} @ if
Правильный синтаксис:
@if(...)
abc
@else
cde
@endif
Я никогда не видел нежелательных мест с этим.