나는 User 엔티티와 Usecase 엔티티를 가지고 있습니다. 이 두 엔티티는 ManyToMany 연관과 연관되어 있지만이 연관에는 "환경"이라는 또 다른 속성이 있습니다. 이 관계를 구현하기 위해 User와의 ManyToOne 관계, Usecase와의 ManyToOne 관계 및 추가 필드 인 "환경"이있는 UserUsecase라는 엔티티도 있습니다. 데이터베이스에서 사용자를 가져 오는 경우 사용법도 가져 오므로 사용자는 사용자가 가지고있는 모든 용도를 나타내는 UserUsecase 유형의 객체로 이루어진 ArrayCollection을가집니다. 내가하고 싶은 것은 usecase_id에 의해이 ArrayCollection을 필터링하는 것이다. 클래스 UserUsecase 심지어 필드 쓰임새가 형식의 개체입니다symfony : 연관된 엔티티 ID로 필터 ArrayCollection
public function filterUsecases($usecase_id){
$criteria = Criteria::create();
$criteria->where(Criteria::expr()->eq('usecase', $usecase_id));
return $this->userUsecases->matching($criteria);
}
그것은 나에게 의미가 있습니다 : 그래서 User 클래스 안에이 시도
class UserUsecase
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="userUsecases")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
/**
* @ORM\ManyToOne(targetEntity="Usecase", inversedBy="userUsecases")
* @ORM\JoinColumn(name="usecase_id", referencedColumnName="id")
*/
protected $usecase;
/**
* @ORM\Column(type="integer")
*/
protected $environment;
}
다음 UserUsecase 클래스는 아래의 구조를 가지고 Usecase, 그것은 id로 해결되어야하고 방정식은 id가 일치 할 때 유지됩니다. 그래도 작동하지 않는 것 같아서이 필터링을 구현하는 방법을 찾을 수 없습니다. 이런 식으로 할 수 있습니까? 나는 내가 원하는 것을 정확하게하는 것으로 보이는 관련 기사를 찾았지만 이것은 나의 경우에는 효과가 없다. Here이 기사입니다! 내가 뭔가 잘못하고 있는거야?
미리 감사드립니다.