Mateusz Wądołkowski PCDOCTOR, właściciel
Temat: [sf 1.4] Filtrowanie domyślne
Witam,Mam taki problem. Pewnie to bardzo proste ale nie mogę sobie poradzić.
Mam pole statusu 'aktywny' i chciałbym aby domyślnie dane były przefiltrowane i pokazywały
tylko aktywne osoby. Jak ustawię sobie domyślną wartość w definicji filtra to owszem w formularzu filtra domyślna wartość ustawia się prawidło ale dane nie są wcale przefiltrowane.
Nie chcę ustawiać takiego sztucznego linku, gdzie domyślne fitrlowanie byłoby ustawione jako get. Na pewno można to zrobić jakoś bardziej elegancko.
W rozszerzonej definicji filtra mam
public function configure()
{
$this->widgetSchema['aktywny'] = new sfWidgetFormChoice (array('choices' => array( '1' => 'tak', '0' => 'nie', '' => ''),'default' => '1'), array('name' => 'osoba_filters[aktywny][text]');
}
A w akcji index:
public function executeIndex(sfWebRequest $request)
{
$query = Doctrine_Core::getTable('Osoba')->createQuery('a')->orderBy('nazwisko ASC');
//pobieram wartości filtra
$filterValues = $request->getParameter('osoba_filters');
//tworze nowy formularz zawierjący dane filtra
$filter = new OsobaFormFilter($filterValues);
//przypisuję zapytanie o tablice
$this->formfilter->setQuery($query);
if($filterValues){
//bind the values
$this->formfilter->bind($filterValues);
//if valid, specialise the request using the form
if($this->formfilter->isValid())
$query = $this->formfilter->getQuery();
}
$this->osoby = $query->execute();
}
Z góry dzięki za pomoc
Mateusz