저는 응용 프로그램을 개발 중이며 다음을 발견했습니다. Contact라는 엔티티가 있고 해당 연락처는 회사에 속하고 회사에는 기본 연락처와 보조 연락처가 있으며 나머지 연락처도 정상으로 지정했다고 가정 해 보겠습니다. .
제 질문은 엔터티 속성과 양식 처리에 대해 말할 때 이에 대한 가장 좋은 접근 방식은 무엇입니까? 나는 두 가지에 대해 그래도 :
이 옵션에 대해 내가 싫어하는 (또는 100 % 방법이 아님)은 Contact 엔터티에서 2 개의 일대일 속성 각각에 대해 inversedBy 필드가 필요하고 또한 1 개에 대해 1 개가 필요하다는 것입니다. 다 대다 관계와 내 개인적인 생각은 이것이 목적 상 다소 지저분하다는 것입니다.
이 옵션이 마음에 들지 않는 점은 Company에 대해 매핑되지 않은 2 개의 속성이 필요하고 원활하게 작동하려면 양식 유형에서 많은 작업을 수행해야한다는 것입니다.
내 질문은이 구조에 대한 최선의 접근 방식과 양식 및 이러한 종속성을 처리하는 방법입니다. 이것이 충분히 명확하지 않은 경우 알려 주시면 시간을내어 코드와 이미지로 예제를 준비하겠습니다.
@Cerad 덕분에 이것은 내가 취한 다음 접근 방식입니다.
`
<?php
namespace XYZ\Entity;
/**
* @ORM\Entity
* @ORM\HasLifecycleCallbacks()
*/
class Company
{
...
/**
* @ORM\OneToMany(targetEntity="\XYZ\Entity\Contact", mappedBy="company", cascade={"persist", "remove"})
*/
private $contacts;
public function getPrimaryContact() { ... }
public function setPrimaryContact(Contact $contact) { //Set the type of $contact and add it $this->addContact($contact) }
public function getSecondaryContact() { ... }
public function setSecondaryContact(Contact $contact) { //Set the type of $contact and add it $this->addContact($contact) }
}`
그리고 양식 유형의 경우 다음이 있습니다.
`
class CompanyType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
...
->add('primaryContact', new ContactType())
->add('secondaryContact', new ContactType())
}
...
}`
이 세트를 사용하면 모든 것이 원활하게 실행되며 많은 어려움없이 CRUD를 수행 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다