在formmapper中渲染部分树枝

Posted

技术标签:

【中文标题】在formmapper中渲染部分树枝【英文标题】:Render partial twig in formmapper 【发布时间】:2015-03-25 00:31:24 【问题描述】:

是否可以将视图呈现到表单映射器中? 情况是这样的:

 /**
     * @param FormMapper $formMapper
     */
    protected function configureFormFields(FormMapper $formMapper)
    
        $formMapper
            ->tab('Company')
                ->with('Info')
                    ->add('name')
                ->end()
            ->end()

            ->tab('Abonnementen')
            ->with('Abonnementen', array('class' => 'col-md-12'))
                //Render a partial twig here
            ->end()
        ;
    

这是在我的树枝上:

<form class="form-horizontal" action="" method="post" style="margin-top:15px;">
        <div class="row">
            <div class="col-md-12">
                <div class="box box-primary">
                    <div class="box-header"><h4 class="box-title">Abonnementen</h4></div>
                    <div class="box-body">
                        <table class="table table-striped">
                            <thead>
                            <tr>
                                <th>Name</th>
                                <th>Description</th>
                                <th>Price</th>
                                <th>Active</th>
                            </tr>
                            </thead>
                            <tbody>
                            % for abonnement in abonnementen %
                                <tr>
                                    <td> abonnement.name </td>
                                    <td> abonnement.description </td>
                                    <td>€  abonnement.price </td>
                                    <td>
                                        <input type="checkbox" name=" abonnement.id [active]"
                                                % if abonnement.active %
                                            checked="checked"
                                                % endif %>
                                    </td>
                                </tr>
                            % endfor %
                            <tr>
                                <td colspan="4">
                                    <input type="submit" class="btn btn-primary" value="Save" name="abonnement_save">
                                </td>
                            </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </form>

甚至可以在我的表单映射器中将其加载到我的选项卡中吗?

【问题讨论】:

【参考方案1】:

我认为可以做类似的事情。您想将表单注入基本奏鸣曲形式。这是可能的,但最后你会得到这样的结果:

  <form> # form from sonata
     <form> #your custom form
     </form>
  </form>

我不推荐。

Formmaper 从 formBuilder 构建表单,您可以以标准方式定义表单字段的模板(html):

http://symfony.com/doc/current/cookbook/form/form_customization.html

我建议您覆盖奏鸣曲模板名称“编辑”并将您的代码添加为另一种形式。

 public function configure()
 
      $this->setTemplate('edit', 'ApplicationM2MNewsletterBundle:CRUD:empty_form.html.twig');
 

【讨论】:

感谢您的回复。我已经修复了它,确实以某种方式修复了它。为了那个原因;我会接受你的回答。

以上是关于在formmapper中渲染部分树枝的主要内容,如果未能解决你的问题,请参考以下文章

Symfony - 在 myClass 中渲染树枝文件

如何在没有时区干扰的情况下在树枝中渲染时间

枯树枝怎样清理 怎样清理枯树枝

设计模式--组合模式

如何在Symfony2中将json渲染成树枝

Pimcore 与树枝;根据菜单深度渲染 html