У меня есть этот код в моем контроллере:
/**
* Displays a form to create a new Bank Account
*
* @Route("/account/new", name="wba_new")
* @Method("GET")
* @Template("BankBundle:BankAccount:new.html.twig")
*/
public function newBankAccountAction() {
$entity = new Account();
$form = $this->createForm(new AccountType(), $entity);
return array('entity' => $entity, 'form' => $form->createView());
}
/**
* Handle bank account creation
*
* @Route("/", name="wba_create")
* @Method("POST")
*/
public function createAction(Request $request) {
$entity = new Account();
$form = $this->createForm(new AccountType(), $entity);
$form->handleRequest($request);
print_r($request);
exit;
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('wba_list'));
}
return array('entity' => $entity, 'form' => $form->createView());
}
Когда я вызываю /account/new
, форма отображается без проблем, и действие переходит к /
, но когда я отправляю форму, я получаю эту ошибку:
Контроллер должен вернуть ответ (Array(entity => Object(BankBundle\Entity\AccountType), form => Object(Symfony\Component\Form\FormView)) задан).
Почему? Что не так в моем коде?
ОБНОВЛЕНИЕ
Я нашел, в чем проблема, у меня есть два маршрута с одинаковым определением в двух разных контроллерах:
/**
* Handle bank account creation
*
* @Route("/", name="wba_create")
* @Method("POST")
*/
После устранения проблемы все работает
Response
? - person Joachim Isaksson   schedule 05.08.2013@Template
поверх вашей функцииcreateAction()
. - person cheesemacfly   schedule 05.08.2013@Template
или забыли активировать прослушиватель ответа представления FOSRestBundle... или любой другой прослушиватель, преобразующий данные, возвращаемые действием контроллера, в объект ответа автоматически. - person Nicolai Fröhlich   schedule 06.08.2013