0
在Zend Framework中我試圖創建將自動轉成隱藏的元素,如果只有一個項目的用戶可以選擇選擇元素的Zend_Form_Element_Select更改爲Zend_Form_Element_Hidden。我希望它表現得就像一個選擇元素,如果有一個以上的價值,所以我知道我需要使用擴展類以下內容:基於它的價值
class Application_Form_Element_SingleSelect extends Zend_Form_Element_Select{}
但我不知道如何得到它的輸出作爲一個隱藏的元素。
更新
這是我想出了最終代碼:
public function render(Zend_View_Interface $view = null){
$options = $this->getMultiOptions();
// check to see if there is only one option
if(count($options)!=1){
// render the view
return parent::render($view);
}
// start building up the hidden element
$returnVal = '<input type="hidden" name="' . $this->getName() . '" ';
// set the current value
$keys = array_keys($options);
$returnVal .= 'value="' . $keys[0] . '" ';
// get the attributes
$attribs = $this->getAttribs();
// check to see if this has a class
if(array_key_exists('class', $attribs)){
$returnVal .= 'class="' . $attribs['class'] . '" ';
}
// check to see if this has an id
if(array_key_exists('id', $attribs)){
$returnVal .= 'id="' . $attribs['id'] . '" ';
} else {
$returnVal .= 'id="' . $this->getName() . '" ';
}
return $returnVal . '>';
}