Doctrine: Admin generator, ajouter un critère à la requete
Bonjour,
voila je débute sur symfony et j'ai un problème que je n'arrive pas a résoudre.
Sur mon site de test j'ai généré une partie admin "backend" a l'aide de la ligne de commande,
cela m'affiche bien ma table correctement, cependant j'aimerais ajouter un critère de sélection sur les résultats affichés.
J'ai déja essayer plusieurs choses, comme mettre un filtre par default :
Code:
1 2 3 4 5 6 7 8 9 10
|
# /apps/backend/module/article/articleGeneratorConfiguration.class.php
class articleGeneratorConfiguration extends BaseArticleGeneratorConfiguration
{
public function getFilterDefaults()
{
return array('une' => 1);
}
} |
et j'ai aussi essayer de modifier l'action executeIndex :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
# /apps/backend/module/article/action/actions.class.php
public function executeIndex(sfWebRequest $request)
{
$this->pager = $this->configuration->getPager('ActumontagneArticle');
$this->pager>setQuery($this->buildQuery());
$this->pager->setPage($this->getPage());
$this->pager->init();
}
public function buildQuery()
{
$q = doctrine::getTable('Article')->getArticleUne();
return $q;
} |
avec ceci cela me donne bien ce que je veut mais les filtres et le trie ne marche plus.
Comme vous l'avez surement compris j'aimerais donc afficher seulement les articles qui ont le champ 'une' = 1.
Merci d'avance pour votre aide :D.
Plus précisement en Doctrine
Citation:
Envoyé par
arotra
Merci !!
j'ai été voir ou tu a dit et j'ai trouver ce qu'il me fallait, cela ressemble donc à ceci:
[...]
ça marche parfaitement maintenant, merci beaucoup, ça faisait un moment que je bloquais la dessus :ccool: .
Super ! J'ai été confronté au même problème. J'ai lu la doc et je cherchais comment faire concrètement, ce qui m'a amené ici.
Tout ce que j'ai fait, et ce qui semble marcher, est de prendre l'objet Doctrine et respécifier le order by:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class candidateActions extends autoCandidateActions {
public function preExecute() {
$this->dispatcher->connect(
'admin.build_query',
array( $this, 'order_by_last_name_first_name')
);
parent::preExecute();
}
public function order_by_last_name_first_name($event, Doctrine_Query $query) {
return $query->orderBy('last_name')
->addOrderBy('first_name')
->addOrderBy('dt_begin')
;
}
} |
Le toolbar symfony indique que c'est bien pris en compte. En espérant que cet éclaircissement aide qq'un d'autre.
-N