我正在忙着开发Symfony 3应用程序。
我需要知道是否可以采取由2条路线提供的行动:
在第一种情况下,它将用于创建与给定实体相关联的新实体。 在第二种情况下,它将编辑与另一个给定实体相关联的现有和给定实体。
如果不清楚,请参阅我的例子:
/**
* @Route("/admin/instances/{group}/reunions/nouveau", requirements={"group": "\d+"})
* @Route("/admin/instances/{group}/reunions/{reunion}/modifier", requirements={"reunion": "\d+"})
* @Method({"GET", "POST"})
*
* @param Request $request
* @param Group $group
* @param Reunion $reunion
*
* @return Response
*/
public function newEditAction(Request $request, Group $group, Reunion $reunion = null)
{
if (!$reunion) {
// we know we are busy with a creation
}
}
尽管如此,除非包含实体的表为空,否则$reunion
永远不会是null
。
由于两个实体Group和Reunion彼此相关(请参阅下面的关系),Symfony似乎会自动搜索与给定组关联的第一个Reunion实体。知道为什么吗?
Reunion.php
/**
* @var \AppBundle\Entity\Group
*
* @ORM\ManyToOne(targetEntity="Group", inversedBy="reunions")
* @ORM\JoinColumn(name="reunion_group_id", referencedColumnName="group_id")
*/
private $group;
感谢您的帮助。
答案 0 :(得分:0)
您应该有两条不同的路线。一个用于创建,仅接受POST请求,另一个用于接受PUT或PATCH请求的编辑。