Проблема с массивом addmultioption в Zend - PullRequest
0 голосов
/ 03 апреля 2010

Пытаюсь добавить опции в мой элемент Zend_Form_Element_Select

$monthvalues = new Zend_Form_Element_Select('month_values');
$table = new Model_DbTable_Options();
$monthvalues->addMultiOptions($table->Months())

В моей модели Model_DbTable_Options у меня есть

public function Months()
    {
        $array = array(
        '01' => 'Jan',
        '02' => 'Feb',
        '03' => 'Mar',
        '04' => 'Apr',
        '05' => 'May',
        '06' => 'Jun',
        '07' => 'Jul',
        '08' => 'Aug',
        '09' => 'Sep',
        '10' => 'Oct',
        '11' => 'Nov',
        '12' => 'Dec',
        );

        return $array;
    }

Это не дает мне желаемого результата. Чего не хватает?

Ответы [ 2 ]

1 голос
/ 03 апреля 2010

Создать массив таким образом

$myArray = array( 'NULL' => 'Select Month',
                     '1' => 'Jan',
                     '2' => 'Feb',
                     '3' => 'Mar',
                     '4' => 'Apr',
                     '5' => 'May',
                     '6' => 'Jun',
                     '7' => 'Jul',
                     '8' => 'Aug',
                     '9' => 'Sep',
                    '10' => 'Oct',
                    '11' => 'Nov',
                    '12' => 'Dec'
                 );

Создать такой элемент:

$selectElement = $this->CreateElement('select', 'months');
$selectElement->setLabel('Label');
$selectElement->addMultiOptions( $myArray );
0 голосов
/ 29 января 2013

Будь осторожен! Если вы добавите значение NULL, подобное этому, в свою Zend Form, ваша $ модель, которую вы сохраните, будет иметь значение строки (4) "NULL"

// в виде

$ Задачи-> addMultiOption ( 'NULL', '');

// как указано в html

select id = "fk_id_task_task" name = "fk_id_task_task" option label = "" value = "NULL" / option

// модель из значений формы

$ values ​​= $ form-> getValues ​​(); $ model-> fromArray ($ values, true);

// сбросим модель $, и вы получите строку (4) "NULL"

$ model-> fk_id_task_task = string (4) "NULL"

...