-1

我需要在我的视图中创建一个 deleteForm,所以我这样做:

/**
 * Show created bank account
 *
 * @Route("/{account_id}", name="wba_show")
 * @Method("GET")
 */
public function showAction($account_id) {
        $em = $this->getDoctrine()->getManager();
        $entity = $em->getRepository('BankBundle:Account')->find($account_id);

        if (!$entity) {
            throw $this->createNotFoundException('Unable to find Account entity.');
        }

        $deleteForm = $this->createDeleteForm($account_id);
        return array('entity' => $entity, 'delete_form' => $deleteForm->createView());
}

但我得到这个错误:

FatalErrorException:错误:调用 /var/www/html/src/BankBundle/Controller/WController.php 第 66 行中未定义的方法 BankBundle\Controller\WController::createDeleteForm()

这种方法有什么问题?我需要使用一些东西来创建表单?

解决方案 我找到了解决方案,因为createDeleteForm()它不是 Symfony2 方法,是我从另一个代码中获取的错误,所以我以这种方式创建函数:

private function createDeleteForm($account_id) {
        return $this->createFormBuilder(array('account_id' => $id))->add('account_id', 'hidden')->getForm();
}

瞧,问题消失了!!

4

1 回答 1

1

您需要创建一个这样的表单:

$this->createForm(new CreateDeleteType());

当然你还需要创建这个表单:

class CreateDeleteType extends AbstractType {

除此之外,您的错误消息非常清楚。method您调用的( createDeleteForm) 不存在。请注意,$this指的是您当前的控制器上下文而不是表单上下文在官方文档中阅读有关表单的更多信息。

于 2013-08-02T13:59:04.163 回答