2012-12-18 10 views
5

Mam dwie Model: test1, test2 i działania w test1:Yii i baza danych wiersz w rozwijanym

public function active_widgets_list() 
{ 
    $widgets = SiteWidget::model()->find('status=:status', array(':status' => '1')); 
    return $widgets; 
} 

a pokażę test1.tbl_1 wiersze w formie listy rozwijanej w widoku test2 za:

$list=CHtml::listData(SiteWidget::model()->active_widgets_list(), 'id', 'title'); 
echo $form->dropDownList($model,'widget_id', $list, array('empty' => 'Select Please')); 

ale nie działa. Mam tylko puste menu rozwijane.

+2

użycie 'findAll' zamiast' find', czy też jest to literówka? Chociaż lista nie powinna być pusta, ponieważ nie będzie co najmniej jednego modelu –

+0

@ bool.dev not letter. nie wiedziałem, co jest poprawne. dzięki. naprawiony. – Chalist

Odpowiedz

3

Powinieneś używać findAll zamiast find, ponieważ find zwraca tylko jeden aktywny rekord z określonym warunkiem.

$widgets = SiteWidget::model()->findAll('status=:status', array(':status' => '1'));