Как перевести скрипт в Zend Framework? - PullRequest
0 голосов
/ 16 ноября 2011

У меня такая ситуация:

<select name="year" >
    <?php 
        $today = date("Y"); 
        for ($i=2005; $i<=$today; $i++){
            echo "<option value=\"$i\">$i</option>";
        }
    ?>
</select>

Это даст мне годы 2005 до 2011, ...

в Zend Framework раскрывающийся список будет выглядеть так:

$this->addElement('select', 'department', array(
    'label'        => 'Year:',
    'multiOptions' => array('A' => 'A', 'B' => 'B', 'C' => 'C',),
    'value'        => @$val->_listing_type_id
));

Как я могу перевести мой for loop скрипт, чтобы создать годы в скрипте Zend Framework? Я знаю, что могу использовать первый скрипт в Zend Framework, но хочу сохранить синтаксис согласованным.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

Вы можете использовать range для создания массива чисел с 2005 по 2011 год:

...
'multiOptions' => range(2005, 2011),
...

Если Zend действительно ожидает массив, в котором ключи / значения должны быть одинаковыми, вы можете использовать array_combine для получения необходимого массива:

'multiOptions' => array_combine(range(2005, 2011), range(2005, 2011))

Это даст array(2005 => 2005, 2006 => 2006, ..., 2011 => 2011).

0 голосов
/ 16 ноября 2011

Изменить элементы легче, если у вас есть ссылка на них.

$department = new Zend_Form_Element_Select('department');
$department->setLabel('Year:');
.....
$this->addElement($department);

Затем вы можете изменить массив multiOptions по мере необходимости:

 $today = date("Y"); 
 for ($i=2005; $i<=$today; $i++){
   $department->addMultiOption($i, $i);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...