如何在其他树枝+ Modal Dialog Symfony2中渲染视图

时间:2014-05-08 01:44:03

标签: php twitter-bootstrap symfony

今天我想要一个带有表格的modal dialog的节目

这是我的主要代码:

<button class="btn btn-primary btn-lg btn-new" data-toggle="modal" data-target="#agregarPunto">
          Nueva Ronda
</button>
<div  style="display: none;"  class="modal fade" id="agregarPunto" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"  aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Agregar ronda</h4>
            </div>
            <div class="modal-body">
                 {% embed "controlidMembersBundle:Members:newRonda.html.twig" %}
                 {% endembed %}
             </div>
             <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                <button type="button" class="btn btn-primary">Crear ronda</button>
             </div>
         </div>
     </div>
 </div>

这是我想要嵌入的代码

{% block nueva_ronda -%}
   <h1>Nueva ronda</h1>
   {{ form(form) }}
   <ul class="record_actions"></ul>
{% endblock %}

问题是当我点击按钮时,因为我收到以下错误:

Variable "form" does not exist in   /var/www/html/controlid/src/controlid/Bundle/MembersBundle/Resources/views/Members/newRo nda.html.twig at line 5

这个错误很明显,因为我不知道如何调用控制器来呈现表单。

这是应该呈现形式

的symfony上的操作
/*
 * @Route("/ronda/crear", name="members_ronda_new")
 * @Method("GET")
 * @Template()
 */
public function newRondaAction()
{
    $entity = new Ronda();
    $form   = $this->createRondaForm($entity);

    return array(
        'entity' => $entity,
        'form'   => $form->createView(),
    );
}

如何在我的modal-dialog中嵌入代码以呈现表单?

2 个答案:

答案 0 :(得分:2)

我认为您想要的是将动作嵌入到您的树枝模板中。试试这个:

<div class="modal-body">
    {{ render(controller('controlidMembersBundle:Members:newRonda')) }}
</div>

答案 1 :(得分:0)

将此行放在模板的顶部:

{%- use 'controlidMembersBundle:Members:newRonda.html.twig' -%}

JFYI你应该用大写字母(Symfony标准惯例)开始包名。

然后,而不是嵌入,只需使用:

渲染块
{{ block('nueva_ronda') }}