Intereting Posts
php: «short_open_tag = On» не работает скрывать других получателей при отправке нескольких писем getdate () возвращает неправильное время Как удалить акценты и превратить буквы в «простые» символы ASCII? php xpath извлекает значения атрибутов на основе нескольких атрибутов и родительских атрибутов Могу ли я получить доступ к константе класса PHP, используя переменную для имени константы? Как избежать того, что пользователь удаляет сеанс Получение всех элементов списка неупорядоченного списка в PHP сохранить изображение холста на сервер Symfony DomCrawler: найдите элемент с определенным значением атрибута Как выбрать первые 10 слов предложения? как получить противоположные результаты по запросу Laravel Является ли хорошее знание PHP необходимым для создания устанавливаемого шаблона для таких CMS, как WordPress, Joomla или Drupal? Получение 301 с cURL, несмотря на FOLLOWLOCATION Извлеките фиксированное количество символов из массива, просто полные слова

Laravel Blade без лишних пробелов?

Если вы сделаете это, вы получите сообщение об ошибке:

<p>@if($foo)@if($bar)test@endif@endif</p> 

И если вы это сделаете, вы получите <p> test </p> , добавив слишком много пробелов:

 <p>@if($foo) @if($bar)test@endif @endif</p> 

Есть ли способ избежать этого?

Изменить: см. Мой ответ ниже для получения обновленного ответа. Есть чистый способ сделать это без хаков или внешних библиотек.

Попробуйте с тернарным оператором, нет контроля пробелов в Laravel

 <p>{{ $foo ? ($bar ? 'test' : '') : ''}}</p> 

Вы всегда можете использовать пакет hedronium / spaceless-blade на упаковке, чтобы добавить эту функциональность в Blade.

Насколько я знаю, в Blade нет spaceless . Если вы хотите использовать стандартные теги Blade, у вас будут дополнительные пробелы. Существует обсуждение github с предложением для нового тега

похоже, что вы получаете много поискового трафика, поэтому я решил, что добавлю обновление, чтобы поделиться тем, как я обрабатываю это в наши дни. По сути, это немного больше кода, но в итоге он становится глупым простым и очень чистым:

 @if($foo) <p>Test</p> @elseif($bar) <p>Test2</p> @else <p>Test3</p> @endif 

Мораль этой истории – это когда вы работаете с клинком, не пытайтесь втиснуть множество условностей в элементы. Скорее, результат условного содержит элемент. Он чист, прост в чтении и содержит всего несколько персонажей.