2014-04-09 1 views
22

Как проверить, является ли строковая переменная пустой или пустой, или заполнен пробелами в Twig? (Кратчайший, может быть эквивалент String.IsNullOrWhiteSpace() метода Csharp в)Проверьте, является ли строковая переменная пустой или пустой или заполнен пробелами

+0

Извините, я вернул вопрос к исходному заявлению, так как на нем был выбран ответ. Я модифицировал его в не столь ясный момент, чтобы выглядеть похожим, но не совсем таким же вопросом. –

ответ

22

Есть уже хорошие ответы, но я тоже дать мои 2 цента:

{% if foo|length %} 

Я был вдохновлен @ GuillermoGutiérrez-х фильтров трюк.

Но я думаю, что |length безопаснее, так как выражение "0"|trim будет равно false.

Ссылки:

+1

слишком много взлома, imho –

+0

Что вы предлагаете? –

+0

@alanTiemblo - самый проголосовавший ответ, я бы сказал. Еще imho :-) –

28
{% if your_variable is null or your_variable is empty %} 

следует проверить, является ли нулевым или пустым переменным.

Если вы хотите узнать, есть ли оно не null или пусто, просто используйте оператор not.

{% if foo is not null and foo is not empty %} 

Смотрите документацию:

Может быть, вы могли бы быть заинтересованы в tests in twig в целом.

+3

Я не специалист 'twig', но не должен быть' {% if foo не null '** и **' foo is not empty%} '? В противном случае кажется, что это будет всегда так. – DarkWanderer

+1

Да, вы правы! Я изменил его :) – SirDerpington

2

{% if foo|trim %} кажется достаточным (при условии, что foo - переменная, подлежащая проверке). Если foo не является нулевым, trim удаляет пробелы. Кроме того, if обрабатывает пустую строку или null как false, а true в противном случае, поэтому больше не требуется.

Ссылки:

4

Я предпочел бы использовать только trim и empty:

{% if foo|trim is (not) empty %} 

пустой оценивает истинное значение, если Foo переменная:

  • нуль
  • ложные
  • пустой массив
  • пустая строка
+0

Мне нравится, насколько читаемо это решение. –

Смежные вопросы