질문을 공식화하는 방법을 모르겠으므로 자유롭게 편집하십시오.ZF2 Doctrine - 특정 ID가 필요한 의존성 주입을 처리하는 방법
현재 상황은 다음과 같습니다. 폼 클래스를 인스턴스화하는 팩토리 클래스가 있습니다. DI (Dependency Injection)는 생성자 주입을 통해 수행됩니다. 내 문제는이 양식 요소에 findby 메서드가 필요한 Doctrine ObjectMultiCheckbox가 있다는 것입니다. 이 findby 메서드는 특정 엔터티의 ID가 필요하지만 폼에 팩토리 클래스를 통해 ID를 전달할 수는 없습니다.
내 질문은 어떻게 처리 할 수 있습니까? 가장 좋은 방법은 무엇입니까?
class CustomerFormFactory implements FactoryInterface
{
/**
* Create service
*
* @param ServiceLocatorInterface $serviceLocator
* @return Form
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$em = $serviceLocator->get('Doctrine\ORM\EntityManager');
return new CustomerForm($em);
}
}
그리고이 같은 서비스 로케이터를 통해 양식을 얻을 :
은의이 내 팩토리 클래스라고하자$customerForm = $this->getServiceLocator()->get('CustomerForm');
가 어떻게 서비스 로케이터에 ID를 전달할 수 있습니다 ? 그리고 양식 요소에 특정 ID가 필요한 경우 DI 및 서비스의 목적을 깨뜨리지 않습니까? 나는이 같은 자신에 의해 "고전적인"방법을 가서 폼 요소를 인스턴스화해야 :
$customerForm = new CustomerForm(EntityManager $em, int $id);
정말 내가 무엇을해야하는지 모르겠어요 또는 무엇이 처리하는 가장 좋은 방법입니다.
대단한 답변입니다. 고맙습니다 :) – Sepultura