1
Symfony 3 앱을 개발하는 중입니다.Symfony : 다른 매개 변수가있는 여러 경로 (기본 null 포함)
- 한이 개 매개 변수를 첫 번째 경우에
와
나는이 두 경로로 제공됩니다 작업을 할 수 있는지 알고 필요 , 그것은 주어진 엔티티와 관련된 새로운 엔티티를 생성하는 것입니다. 두 번째 경우에는 다른 지정된 엔터티에 연결된 기존 및 지정된 엔터티를 편집하는 것입니다.
그건 내 예를 들어 여기에, 명확하지 않으면 :
/**
* @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
결코 있지만.
엔티티 그룹과 리 유니언 모두 서로 관련되어 있으므로 (아래 관계 참조) Symfony는 지정된 그룹과 관련된 첫 번째 재결합 엔티티를 자동으로 검색합니다. 왜 그런가? Reunion.php
/**
* @var \AppBundle\Entity\Group
*
* @ORM\ManyToOne(targetEntity="Group", inversedBy="reunions")
* @ORM\JoinColumn(name="reunion_group_id", referencedColumnName="group_id")
*/
private $group;
는 당신의 도움을 주셔서 감사합니다.
왜? 이것은 과잉 행동을 일으킬 것입니다. 특정 작업을 수행 한 후 세 번째 작업으로 리디렉션하거나 다른 모든 메서드를 호출하는 두 가지 작업 (각각 공통 경로가 – kero
인 @kero는 코드에서 수행하는 작업에 따라 달라질 수 있음)의 99 %에서 두 가지 작업을 쉽게 수행 할 수 있습니다. 하나의 메소드에서 엔티티를 생성하고 업데이트하고, 어떻게 엔티티를 검색할지 또는 문제의 엔티티를 가져와야 하는지를 처리합니다. 나는 거의 별도의 방법으로 이러한 행동을 분리 할 필요가 없다. – tftd
그래, 너무 복잡해서는 안된다. 난 그냥 내 개체가 비어 있는지 여부를 확인해야합니다, 그렇습니다 나는 새로운 것을 인스턴스화하고 양식에 전달합니다. 그런 다음 폼이 제출되고 유효하면 지속되기 전에 ID가 있는지 확인합니다. 그러나 두 가지 방법을 사용하는 것이 때로는 유용 할 수도 있다는 사실에 동의합니다. 그러나 제 질문에 대답하기 위해, 제가 사용하는 방법이 무엇이든, Symfony가 왜 이런 식으로 반응 하는지를 아십니까? – mentinet