web-dev-qa-db-ja.com

Twig条件付きテキストを出力するための簡略構文があります

Twigにテキストの条件付き文字列を出力するための短い構文はありますか?

<h1>{% if not info.id %}create{% else %}edit{% endif %}</h1>

従来のphpはこれよりもさらに簡単です。

<h1><?php info['id']? 'create' : 'edit' ?></h1>
57
Justin

これは動作するはずです:

{{ not info.id ? 'create' : 'edit' }}

また、これは三項演算子と呼ばれます。それはドキュメンテーションに隠されているようなものです: 小枝のドキュメント:演算子

ドキュメントからの基本構造は次のとおりです。

{{ foo ? 'yes' : 'no' }}
130
mcriecken

値を比較する必要がある場合、あなたができることと等しい:

{{  user.role == 'admin' ? 'is-admin' : 'not-admin' }}

twig内でElvis Operatorを使用できます。

{{  user ? 'is-user' }} 

{{  user ?: 'not-user' }} // note that it evaluates to the left operand if true ( returns the user ) and right if not
25
Raja Khoury

null-coalescing operator も機能します:

{% set avatar = blog.avatar ?? 'https://example.dev/brand/avatar.jpg' %}
2
danigore