かなり重いロジックのみのコードを数回再利用したいのですが、PHPでは関数を使用しますが、小枝ではthis old questionのソリューションを使いました。要するにTwig_Markupオブジェクト型をIf文で使用する方法
、私はそのようなマクロを使用します。ここでは
{% import _self as test %}
{% macro check() %}
{{ test }}
{% endmacro %}
{% set v = test.check() %}
{% if v == 'test' %}
this should display
{% endif %}
はフィドルです:https://twigfiddle.com/kyv3zr/2
問題は、vはTwig_markupオブジェクトであるということです。それは公共の財産を持っていないようです。ダンプを実行すると、次のようになります。
object(Twig_Markup)#1244 (2) { ["content":protected]=> string(13) " 1 " ["charset":protected]=> string(5) "UTF-8" }
if文でどのように使用しますか?
また、テンプレート間で再利用するためのロジックのみのコードを保存する方法がありますか?しかし
{% if v.content == '1' %}
{# do something here #}
{% endif %}
ない特定の、それを試してみてください。
私は重要な質問をしています。回答する前にそれらについて考える:実際に何をしたいのですか?達成したい最終結果は何ですか?私は今マクロが何をしているかを見ていますが、あなたが必要とするものを何でもすることができます - そして、あなたが必要とする最終結果が何であるか分かりません。たとえば、生成するHTMLコード、またはサンプル画像を表示できますか?あなたのインプットは何ですか?あなたのアウトプットは何ですか? –