Witam
Mam formularz który zawiera ok 30 pól, zależy mi na tym żeby jego rysowanie w widoku odbywało się za pomocą render() formularza, a nie rysowaniem każdego pola oddzielnie. Wszystkie pola maja rysować się normalnie prócz jednego które rysuje w partialu wcześniej, zupełnie poza główną tabela formularza. Jest jakaś metoda pozwalająca na wyłączenie konkretnego pola z automatycznego renderowania i renderowanie go ręcznie za pomocą $form['pole']->renderRow();?
Crozin
19.08.2010, 13:33:19
IIRC nie ma. Ale nic nie stoi na przeszkodzie byś w BaseForm dodał sobie kilka metod pozwalających na wyświetlanie określonych pól/wszystkiego poza określonymi itp.
Diwi
19.08.2010, 20:08:18
Sam miałem podobny problem i rozwiązałem go w widoku mniejwięcej tak:
<? foreach( $form as $widget ) {
if( $widget->getName() !== 'nazwa_wykluczonego_pola' ) {
if(!$widget->isHidden()) {
echo $widget->renderLabel(); }
} else {
// i tutaj renderujesz sobie w inny sposób ten widget który wcześniej wykluczyłeś
}
}
?>