Witam,
Napotkałem problem z dodaniem do formularza typu select wartości z bazy danych i nie bardzo chcą się one wyświetlać.
W kontrolerze w akcji daję:
<?php
class ArtykulyController extends Zend_Controller_Action
{
[..]
public function dodajAction(){
$modelArtykulyKategorie = new Application_Model_ArtykulyKategorie();
$categories = $modelArtykulyKategorie->pobierzKategorie();
// print_r($categories) zwraca Array ( [1] => Aktualnosci [2] => Konkursy ) , czyli ok
$form = new Application_Form_Artykul($categories);
[..]
}
Do formularza przekazuję tablice asocjacyjną o nazwie $categories.
Mam problem jednak w użyciu tej zmiennej w opcji addMultiOptions. Przyjmuje ona właśnie tablicę asocjacyjną, ale nijak nie wiem jak jej tam użyć. Jeden Pan podpowiadał mi coś z konstruktorem, ale nie wiem jak tego użyć.
Mój formularz:
<?php
class Application_Form_Artykul extends Zend_Form {
// Jak użyć do tego celu konstruktora?
// private $_categories;
//
// public function __construct($options = null) {
// $this->_categories = isset($options['categories']) && is_array($options['categories']) ? $options['categories'] : array();
// unset($options['categories']);
// parent::__construct($options);
// }
public function init() {
$content = $this->createElement('textarea', 'content');
$content->setLabel('Title:')
new Zend_Validate_NotEmpty()
));
$category = $this->createElement('select', 'category');
$category->setLabel('Kategoria:')
->addMultiOptions(array( // jak umieścić tutaj wartości ze zmiennej $categories ? '1' => 'Aktualności',
'2' => 'Konkursy'
));
$this->addElements(array( $content,
$category,
'submit', 'submit', array( 'label' => 'dodaj'
)
)
));
}
}
Byłbym bardzo wdzięczny za jakąkolwiek pomoc.