En fait j'ai trouvé une solution à mon problème néanmoins je ne trouve
pas ça correct :

Mon action de list permet de filtrer les résultats (avec un
sfFormFilter) je récupère correctement un criteria que j'affecte à ma
méthode (Peer) pour récupérer mes résultats :

$this->formFilter       = new DataFormFilter();
if($request->hasParameter('data_filters'))
{
        $this->formFilter->bind($request->getParameter('my_filters'));
        $this->getRoute()->setListCriteria($this->formFilter->getCriteria());
}

$this->data_list        = $this->getRoute()->getObjects();

Dans le routing.yml je définie une collection de route :
data:
  class:   sfPropelRouteCollection
  options:
    model:   Data

Tout est ok sauf que Data est lié à d'autres tables et je me retrouve
avec un nombre conséquent de requêtes (soit beaucoup trop).

--------------------
On peut définir une methode du modèle courant pour l'action list
model_method : { list: getObjects }

Cette méthode reçoit un array (et non un Criteria) de ce fait la
spécification du criteria (vue plus haut) ne fonctionne pas.

Je ne trouve pas ça normal. Est-ce qu'il y a quelque chose que je ne
fais pas correctement?
---------------------

La solution que j'ai trouvé est de simplement surchargé la route pour
data_list :
data_list:
  url:     /data.:sf_format
  class:   sfPropelRoute
  options: { model: Data, type: list, method_for_criteria:
doSelectJoinAll }
  param:   { module: data, action: index, sf_format: html }
  requirements: { sf_method: get }

data:
  class:   sfPropelRouteCollection
  options:
    model:   Data
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à