変数を使用して特定のマクロ名を呼び出そうとしています。twig変数を使用して、インポートされたマクロサブ関数を動的に呼び出す
私は
{% import 'form-elements.html.twig' as forms %}
をインポートされているマクロファイルは今、そのファイル内のすべてのフォーム要素のマクロがありますしている:テキスト、テキストエリア、選択、ラジオなど
私は、配列変数を持っていますそれには要素が含まれています:
$elements = array(
array(
'type'=>'text,
'value'=>'some value',
'atts'=>null,
),
array(
'type'=>'text,
'value'=>'some other value',
'atts'=>null,
),
);
{{ elements }}
私がしようとしているのは、これらの要素をマクロから生成することです。
{{ forms["'"..element.type.."'"](element.name,element.value,element.atts) }}
{{ forms.(element.type)(element.name,element.value,element.atts) }}
{{ forms.{element.type}(element.name,element.value,element.atts) }}
:私は、次のすべてに同じエラーが発生しようとしている
{% for element in elements %}
{{ forms[element.type](element.name,element.value,element.atts) }}
{% endfor %}
:
{{ forms.text(element.0.name,element.0.value,element.0.atts) }}
しかし、私が何をしたいのか、このようなものである:名前で呼ばれたとき、彼らはうまく動作します
これは、残念ながら、次のエラーがスローされます:
Fatal error: Uncaught exception 'LogicException' with message 'Attribute "value" does not exist for Node "Twig_Node_Expression_GetAttr".' in Twig\Environment.php on line 541
解決策またはより良いスキーマを使用するための助言やアドバイスは非常に役に立ちます。
、これはもはや解決策:(私が理解から、ためにありますセキュリティ理由属性はテンプレートにアクセスできません。 – notacouch