Twigテンプレートで値がNULLかどうかを確認するには、どの構成を使用する必要がありますか?
8 に答える
正確に必要なものに応じて:
is null
null
値が:であるかどうかをチェックします{% if var is null %} {# do something #} {% endif %}
is defined
変数が定義されているかどうかを確認します。{% if var is not defined %} {# do something #} {% endif %}
さらに、2つの値の型を厳密に比較するテストは、 (のような)is sameas
以外の値をチェックする場合に役立つ可能性があります。null
false
{% if var is sameas(false) %}
{# do something %}
{% endif %}
twigでデフォルト値を設定する方法:http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
または、nullのときに表示したくない場合:
{{ my_var | default("") }}
仮定がなければ、答えは次のとおりです。
{% if var is null %}
var
ただし、これはが正確にである場合にのみ当てはまりNULL
、評価される他の値false
(ゼロ、空の文字列、空の配列など)には当てはまりません。var
また、が定義されていない場合はエラーが発生します。より安全な方法は次のとおりです。
{% if var is not defined or var is null %}
これは次のように短縮できます。
{% if var|default is null %}
default
フィルタに引数を指定しない場合は、NULL
(デフォルトのデフォルトのようなもの)と見なされます。したがって、変数が空(null、false、空の文字列/配列など)であるかどうかを確認するための最短かつ最も安全な方法(私は知っています):
{% if var|default is empty %}
私はあなたができるとは思わない。これは、Twigテンプレートで変数が未定義(設定されていない)の場合、NULL
またはnone
(Twig用語で)のように見えるためです。これは、テンプレートでの不正アクセスエラーの発生を抑制するためであると確信しています。
Twig()には「アイデンティティ」がないため、===
これが最善の方法です。
{% if var == null %}
stuff in here
{% endif %}
これは次のように解釈されます。
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
これは、型ジャグリングが得意な場合、、、、、、および未定義の変数などもそのステートメントを真にすることを意味0
します。''
FALSE
NULL
私の提案は、Twigに実装されるIDを要求することです。
1行でそれを行うこともできます。
{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
次のコードを使用して、
{% if var is defined %}
var is variable is SET
{% endif %}
また、変数がARRAYの場合、いくつかのオプションもあります。
{% if arrayVariable[0] is defined %}
#if variable is not null#
{% endif %}
また
{% if arrayVariable|length > 0 %}
#if variable is not null#
{% endif %}
これは、配列is defined
ANDがNULL