mam problem i nie bardzo wiem jak go rozwiązać.
Stworzyłem partialsa do wyświetlania własnego filtra w adminie:
<?php use_helper('Object'); $c = new Criteria(); $c->addAscendingOrderByColumn(AuthorsPeer::SURNAME); $c->addAscendingOrderByColumn(AuthorsPeer::NAME); AuthorsPeer::doSelect($c), 'getId', '__toString', )); ?>
W /apps/backend/modules/articles/actions/actions.class.php zmodyfikowałem metodę addFiltersCriteria():
<?php protected function addFiltersCriteria (&$c) { //parent::addFiltersCriteria($c); $c->add(AuthorsPeer::ID, $this->filters['author']); $c->addJoin(AuthorsPeer::ID, ArticlesAuthorsPeer::AUTHOR_ID); $c->addJoin(ArticlesAuthorsPeer::ARTICLE_ID, ArticlesPeer::ID); } } ?>
Początkowo nie było linii z parent:: i wtedy podczas filtrowania brane były pod uwage tylko wartości autorów. Pozostałe pola filtrów (tytuł, data utworzenia) były ignorowane przy tworzeniu zapytania. Więc postanowaiłem wywołać najpierw parent::addFiltersCriteria() aby najpierw użyć domyślnych filtrów, a później mogego. W rezultacie dostaję błąd:
Undefined class constant 'AUTHOR' in /home/phpion/public_html/symfony/cache/backend/dev/modules/autoArticles/actions/actions.class.php on line 388
i w tym pliku znajduję:
<?php ... { $c->add(ArticlesPeer::AUTHOR, $this->filters['author']); } ?>
W tabeli artykułów nie ma pola autor stąd ten błąd. Tylko dlaczego moje 3-linijkowe kryteria zastępowane są tym 1-linijkowym i na dodatek błędnym...?
Proszę o pomoc...