세 개의 엔터티가 있습니다. "Bordereau", "Stagiaire", "BordereauStagiaire".
새 Bordereau를 생성하고 사용자에게 선택한 "Stigiaires"를 보여주고 유효성을 검사해야 하는 다단계 양식을 만들었습니다. Bordereau와 Stagiaire는 모두 BordereauStagiaire 테이블을 통해 연결됩니다.
새로운 Bordereau 양식을 통해 컨트롤러에서 Bordereau 및 Stagiaire ID를 얻을 수 있었습니다. 그런데 새로운 Bordereau가 생성되면 새로운 BordereauStagiaire를 생성할 수 있는 방법을 찾고 있습니다.
이것이 제가 구현을 시작한 방법입니다. 백엔드에서는 Bordereau가 먼저 생성된 다음 새로운 Bordereau와 선택된 스테이에어를 사용하여 BS가 생성됩니다. BS 테이블에는 Bordereau id, Stagiaire id 및 amount(또 다른 속성)가 있습니다.
양식에서 받은 Bordereau ID와 Stagiaires ID를 사용하여 새로운 BordereauStagiaire를 만드는 방법은 무엇인가요?
이것이 내 컨트롤러입니다
으아악이것이 제가 양식에서 얻은 내용입니다 php $form['stagiaire']->getData()[0]->getId()
和 bordereau 获取数据的方式,我在持久化后获取其 id刷新到数据库中。 php $formBordereau->getId()
제가 쓴 글은 답변이지만, 글이 많은 댓글에 가깝습니다.
먼저 영어로 명명된 변수만 사용하는 것이 좋습니다. 최소한
bordereau
来命名诸如create
와 같은 연산 이름은 사용하지 마세요.그런 다음 사용할 변수에 이름을 지정합니다:
$formBordereau
不是表单,它是一个实体,您应该只使用$bordereau
.글쎄요, 이 엔터티가 필요합니다
BordereauStagiaire
吗?我知道这是一个ManyToMany
관계, Symfony와 Doctrine은 엔터티를 통해 직접 관리하므로 이 세 번째 엔터티는 필요하지 않습니다.Doctrine은 ORM입니다. 즉, 관계를 올바르게 설계하면 ID가 아닌 개체로만 작업할 수 있으며, 그 반대의 경우도 마찬가지입니다.
그런 다음 다음 개체를 사용하여 이 메서드를 호출해야 합니다.Bordereau
实体中应该有一个方法addStagiaire
으아아아