2016-02-24 5 views
0

После обновления с 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. Может кто-нибудь объяснить, как именно эта функция работает и где я могу найти больше информации? Он работает только для сущностей или ...?

спасибо!

ответ

Смежные вопросы