Symfony2.3.4와 Doctrine을 사용합니다.symfony2 doctrine arrayCollection의 findBy ID
클래스 Edition의 ManyToMany 관계가있는 클래스 Student가 있습니다.
내 StudentController에서 DB에있는 모든 학생이 아니라 해당 Edition ID와 관련된 학생을 나열하는 IndexAction ($ edition_id)이 있습니다.
$entities = $em->getRepository('PersonBundle:Student')->findBy(array(
????????
));
나는 $ edition_id와 (과) 함께 사용할 어떤 기준을 생각하고 있지만 어떤 것도 생각 해낼 수 없습니다.
감사의 말씀 감사합니다.
@dmnptr : 나는 그것을 시도하고 있는데, 나는 이것에 아주 익숙하다. 그래서 내가 잘못한 것을 말해 준다.
:난 당신이 컨트롤러와 메소드 IndexAction ($ 에디션) 지금
$students = this->findAllByEdition($edition);
문제입니다 매개 변수 $ 에디션이 같은 나뭇 가지 템플릿에서오고있다
을 추가로 썼다 그 기능을 넣어<a href="{{ path('student', { 'edition': entity}) }}"</a>
엔티티 에디션 개체를 보유하고 있습니다.
엔티티은 __toString() 메서드를 반환합니다. 즉, 사용자가 제공 한 함수가 사용하는 에디션 자체가 아닌 에디션 이름의 문자열을 반환합니다.
지금, 당신은 템플릿에서 객체 자체를 얻을 수있는 방법을 아시나요 아닌 __toString() 메소드, 덕분에 ...
전체 개체를 URL로 압축 할 수 없습니다. 'path()'에서'entity.id'를 사용해야하고, 컨트롤러에서 ID를 사용하여 필요한 엔티티를 얻으십시오. 또한,'findAllByEdition'은 컨트롤러가 아닌 커스텀 저장소에 있어야합니다. – dmnptr
그게 내가 생각한 것인데, 컨트롤러에없는 경우 메서드를 호출하는 방법 만 알지 못한다. 내게 말해 줄 수 있니? 또한 컨트롤러에 남겨 둘 위험은 무엇입니까? – jmiguel
컨트롤러에이 방법을 사용하는 것과 관련된 위험이 있다고 생각하지 않습니다. 당신은 그것을 할 수 있습니다, 그것은 당신의 선택입니다. 그러나 이것은 논리적으로 컨트롤러에 속한 코드를 컨트롤러에 추가하여 불필요하게 커지게하므로 나쁜 스타일로 간주됩니다. 여기에 사용자 정의 저장소에 대한 자세한 내용입니다 : http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes – dmnptr