我正在將樹枝模板引擎集成到PHP應用程序中。特別是,我想使用樹枝引擎來渲染表單。樹枝:選擇某些塊並渲染它們
說完看了一眼Symfony2中如何使用樹枝來渲染表單控件,它們有一個包含所有像這樣的小部件一個巨大的模板文件:
(...)
{% block password_widget %}
{% spaceless %}
{% set type = type|default('password') %}
{{ block('field_widget') }}
{% endspaceless %}
{% endblock password_widget %}
{% block hidden_widget %}
{% set type = type|default('hidden') %}
{{ block('field_widget') }}
{% endblock hidden_widget %}
{% block email_widget %}
{% spaceless %}
{% set type = type|default('email') %}
{{ block('field_widget') }}
{% endspaceless %}
{% endblock email_widget %}
{% block test_widget %}
{% spaceless %}
<div>
{{test}}
<div>
{% endspaceless %}
{% endblock test_widget %}
(...)
我的問題是我怎麼能「搶」阻止這個模板並渲染它們?
到目前爲止,我能夠加載模板,並調用get塊把所有的塊:
twig = new \Twig_Environment($loader, array('cache' => 'cache'));
$template = $twig->loadTemplate('view\form_div_layout.html.twig');
//var_dump($template->getBlocks()); //try getting all blocks
$template->displayBlock('test_widget', array('test' => 'test'));
echo $template->render();
不幸的是,我不能夠呈現只是「test_widget」塊在這種情況下。我應該怎麼做才能從模板中檢索'test_widget'塊,然後將其插入到不同的模板中以呈現整個表單?
這可能適用於我,你可以分享你是如何實際使用的,或者使用'$ loader'嗎? – blamb