Синтаксис Laravel для @ if / @ endif. - PullRequest
0 голосов
/ 13 ноября 2018

каков аналогичный синтаксис блейда для следующего кода?

<?php if(...):?>abc<?php else:?>cde<?php endif;?>

код @if (...) abc @else .... не годится, так как он рекламирует пробел до и после«abc» код @if (...) abc @ endif (без пробелов до и после строки html) выдает ошибку ...

Спасибо

Ответы [ 5 ]

0 голосов
/ 28 мая 2019

Решение

Правильное решение этой проблемы будет следующим:

@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; ?>

Что в значительной степени объясняет, почему это не сделает дополнительные пробелы.

0 голосов
/ 27 ноября 2018

Я столкнулся с подобными проблемами с пробелами.
Обходное решение, которое я использую, это:
Поместите оператор if в теги php

@php
  $myVar = 'abc';
  if(...) $myVar = 'cde';
@endphp

, а затем просмотрите определенную переменную

{{$myVar}}
0 голосов
/ 13 ноября 2018

Провел немного больше исследований, и похоже, что нет решения, так как в блейде нет пустого тега.Я нашел решение от кого-то, кто оборачивает его строку в дополнительные теги hml (это легко, так как он рекламирует пробелы до и после тега и строку внутри тега si spaceless), но в моем случае мне просто нужна строка без пробелов до и после... Я пойду по старому способу php путь ...

0 голосов
/ 13 ноября 2018

Правильный синтаксис:

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

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

0 голосов
/ 13 ноября 2018

Попробуйте это:

@if(...) {{ 'abc' }} @else
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...