После обновления с Symfony 2.7 до 3.0.2 я заметил, что контроллеры из генератора Crud изменились.Аргументы объекта контроллера Symfony 3
Symfony 2 образца:
/**
* Finds and displays a Article entity.
*
* @Route("/{id}", name="article_show")
* @Method("GET")
* @Template("AppBundle:article:show.html.twig")
*/
public function showAction($id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('AppBundle:Article')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Article entity.');
}
$deleteForm = $this->createDeleteForm($id);
return array(
'entity' => $entity,
'delete_form' => $deleteForm->createView(),
);
}
Symfony 3 образца:
/**
* Finds and displays a Article entity.
*
* @Route("/{id}", name="article_show")
* @Method("GET")
*/
public function showAction(Article $article)
{
$deleteForm = $this->createDeleteForm($article);
return $this->render('article/show.html.twig', array(
'article' => $article,
'delete_form' => $deleteForm->createView(),
));
}
Не уверен, когда именно это изменилось, так как я не использовал генератор Crud, когда я работал с версией 2.8.
Во всяком случае, магия Меня интересует это:
public function showAction(Article $article)
, который, кажется, делает то же самое, как более ранней версии:
public function showAction($id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('AppBundle:Article')->find($id);
...
}
я не мог найти никакой документации относительно этого на Веб-сайт Symfony. Может кто-нибудь объяснить, как именно эта функция работает и где я могу найти больше информации? Он работает только для сущностей или ...?
спасибо!