奏鸣曲 - 在节目模板中实现一个表单

时间:2016-11-04 22:55:30

标签: php symfony sonata-admin

我需要在特定管理员的show模板中实现一个表单。在Symfony的原始演示中,显示了一个很好的例子。请在这里查看一下;

  1. Controller(另请参阅第120行的方法)
  2. Post Show template
  3. Comment Form template
  4. 现在我在索纳塔做过什么;

    我为特定的管理类(OrderAdmin)创建了自定义CRUD控制器。我已经有一个克隆动作,但是我知道我的自定义CRUD控制器工作得很好。

    我还有一个特定于OrderAdmin的自定义显示模板。再次,这很好,因为我已经在那里定制了一些东西。

    现在我的工作与此自定义评论表单有关;

    我的操作只是为了呈现表单(就像在Symfony演示中一样):

    /**
     * @param Order $order
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function commentFormAction(Order $order)
    {
        $form = $this->createFormBuilder()
            ->add('comment')
            ->getForm();
    
        return $this->render('AppBundle:Order:_comment_form.html.twig', array(
            'order' => $order,
            'form' => $form->createView(),
        ));
    }
    

    我的展示模板的片段

    <div class="row">
            <div class="col-md-12">
                {{ render(controller('AppBundle:OrderCRUD:commentForm', { 'id': object.id })) }}
            </div>
        </div>
    

    最后我的_comment_form模板,其中表单自我呈现:

    {{ form_start(form) }}
        {{ form_widget(form) }}
        <button class="btn btn-primary pull-right" type="submit">Comment</button>
    {{ form_end(form) }}
    

    我很确定这一切都设置得很好,我得到的唯一问题是......

      

    在渲染模板期间抛出了异常   (“没有为控制器定义_sonata_admin   AppBundle\Controller\OrderCRUDController和。{   当前路线``“)。

    我还有另一个操作,即评论表单操作,但是在表单提交之前调用该操作之前,我遇到了问题。

    请有人帮我理解这个_sonata_admin。我该如何定义它?我应该如何处理我的代码,或者我如何更改它以在我的show模板中正确获取表单功能。有人有一个如何实现这个目标的例子吗?我在网上发现了一些人们为之奋斗的帖子。

    我还在this question上开了一个非常类似的问题。

    我迫切需要帮助才能让它发挥作用。请?我知道索纳塔的支持很差,但我需要你们。

0 个答案:

没有答案