Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-04-2014 16:30:30

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

filtrer les collection retourné des propriété ToMany

Bonjour!

Prenons une entité A, comprenant une propriété toMany que l'on va appeller myCollection. (si pour la suite c'est trop abstrait, je prendrait un exemple concret).

Pour le moment, lorsque j'ai besoin que la collection sois limité et filtrer, je passai par les repositories.

Mais si possible, j'aimerai pouvoir modifié la méthode getMyCollection() de l'entité A en lui rajoutant des paramêtres pour obtenir la collection filtrer souhaité.

Pouvoir faire par exemple ceci :

Code:

[lang=php]
$myA = $myARepository()->find($id);
$filteredCollection = $myA->getMyCollection($limit = 10; $offset = 20, $paramX = "y");

Pour le moment, je sais que je peut le faire grace au Criteria
http://doctrine-orm.readthedocs.org/en/ … ollections

Mais comment agis la classe "Criteria" au niveau du "lazy Loading"?
Pour des questions d'optimisation, je voudrai être sur que le filtre s'applique au niveau SQL, et non PHP.
Si le résultat de ->getMyCollection() contient 25 000 résultat et que une foi filtrer je n'en est plus que 10, aurai-je les même performance qu'en construisant une requête dans le repository?

Sinon j'ai chercher de la documentation pour voir si je pouvais (et si j'avais le droit?) d'écrire mon propre proxy, sans succès.

Hors ligne

 

#2 30-04-2014 18:13:32

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: filtrer les collection retourné des propriété ToMany

Salut, la classe criteria agit avant la requête sinon ça n'a pas d'intérêt wink.

Hors ligne

 

#3 30-04-2014 18:25:11

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: filtrer les collection retourné des propriété ToMany

so perfect!!!

Merci résolut du coup ^^

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages