Синтаксис лезвия 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(...) {{ 'abc' }} @else

Я столкнулся с аналогичными проблемами с пробелами.
Обходной путь, который я использую, это:
Поместите свое заявление 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

Я никогда не видел нежелательных мест с этим.

Другие вопросы по тегам