symfony2 generate consultas php symfony doctrine2 findby

php - consultas - generate entity symfony



doctrina symfony2 findBy id in arrayCollection (1)

Debe usar un método de repositorio personalizado. Pase $edition como parámetro, no solo una identificación. Algo como esto:

public function findAllByEdition($edition) { $em = $this->getEntityManager(); $queryText = "SELECT s FROM PersonBundle:Student s "; $queryText .= "WHERE :edition MEMBER OF s.editions"; $query = $em->createQuery($queryText); $query->setParameter(''edition'', $edition) return $query->getResult(); }

Usando Symfony2.3.4 y Doctrine.

Tengo una clase Estudiante con una relación ManyToMany con una Edición de clase.

Ahora en mi StudentController tengo esta IndexAction ($ edition_id) para listar no todos los estudiantes en la base de datos, sino solo aquellos relacionados con la identificación de la edición dada.

$entities = $em->getRepository(''PersonBundle:Student'')->findBy(array( ???????? ));

Estoy pensando en algún tipo de criterio para usar con $ edition_id pero no puedo encontrar ninguno.

Consejos apreciados, gracias.

@dmnptr: Lo intento, soy bastante nuevo en esto, dime si hice algo mal.

Puse la función que escribiste en el controlador y en el método IndexAction ($ edición) que agregué

$students = this->findAllByEdition($edition);

ahora el problema es que el parámetro $ edition proviene de una plantilla twig como esta:

<a href="{{ path(''student'', { ''edition'': entity}) }}"</a>

siendo la entidad que posee el objeto Edition.

Pero cuando lo hago como esta entidad devuelve el método __toString (), que significa una cadena con el nombre de la edición, no la edición en sí misma, que es lo que usa la función que me diste.

Ahora, ¿sabes una forma de obtener el objeto de la plantilla, no el método __toString (), gracias ...