フォーム内のすべてのフィールドを編集すると、ドロップダウン メニューを除いて正しく入力され、何が問題なのかわかりません。
これが私のフォームです
$katModel = new Model_Kategoria();
$kategorie = $katModel->getKategorie(0);
$katList = new External_Form_Element_SelectAttribs('kategoria');
$katList->setLabel('Kategoria: ');
$katList->isRequired(true);
if(isset($kategorie)) {
foreach($kategorie as $k) {
$katList->addOption($k['id'], $k['kategoria'], array('class' => 'level-' . $k['depth']));
}
}
$this->addElement($katList);
カスタム要素を使用しているので、「オプション」にクラスを追加できます
class External_Form_Element_SelectAttribs extends Zend_Form_Element {
public $options = array();
public $helper = 'selectAttribs';
/**
* Adds a new <option>
* @param string $value value (key) used internally
* @param string $label label that is shown to the user
* @param array $attribs additional attributes
*/
public function addOption ($value,$label = '',$attribs = array()) {
$value = (string) $value;
if (!empty($label)) $label = (string) $label;
else $label = $value;
$this->options[$value] = array(
'value' => $value,
'label' => $label
) + $attribs;
return $this;
}
}
私のコントローラーの編集アクションでは、
$zadanie = $zadanieModel->find($id)->current();
$zadanieForm->populate($zadanie->toArray());
その1つを除くすべてのフィールドにcorretlyを入力します
私はもう試した
$zadanieForm->kategoria->setValue(7);
$zadanieForm->setDefault('kategoria', 7);
しかし、うまくいきませんでした。
今、私が使用しているカスタム要素で何かを推測しています(Googleでコードを見つけました)が、それを変更する方法がわからないので、うまくいきます。