Question à propos de method_for_query
Bonjour,
En relisant le tutoriel Jobeetje me suis aperçu que j'avais zappé cette petite incantation magique. J'ai bien compris le principe, par contre je ne comprend pas comment elle fonctionne :
routing.yml
Code:
1 2 3 4 5 6 7 8
| news_show:
url: /news/:id/:news_slug/
class: sfDoctrineRoute
options: { model: News, type: object, method_for_query: retrieveActiveNews }
param: { module: news, action: show }
requirements:
id: \d+
sf_method: [get] |
la classe NewsTable (il n'y a rien d'autre dedans sauf la fonction statique getInstance)
Code:
1 2 3 4 5
| public function retrieveActiveNews(Doctrine_Query $q)
{
$q->andWhere('a.is_activated = ?', true);
return $q->fetchOne();
} |
l'action
Code:
1 2 3 4
| public function executeShow(sfWebRequest $request)
{
$this->news = $this->getRoute()->getObject();
} |
Pourquoi si je met autre chose que 'a.is_activated', par exemple 'n.is_activated', cela me renvoie une erreur 500: Couldn't find class n lorsque j'affiche mon enregistrement. Si je met le 'a' tout fonctionne bien...
Quelque chose m'échappe, d'où il sort ce 'a' ??