所以我创建了一个自定义表单元素,它有一个自定义视图助手.现在我想能够在这个表单元素上设置某些参数/变量,并能够在我的元素的视图助手中访问它们.我怎样才能做到这一点?
这是我所说的一个例子:
将元素添加到表单:
$element = new My_Form_Element_Picker('elementname');
$element->setFoobar('hello');
// or
$form->addElement('Picker', 'elementname', array('foobar' => 'hello'));
Run Code Online (Sandbox Code Playgroud)
表单元素:
class My_Form_Element_Picker extends Zend_Form_Element_Xhtml
{
public $helper = 'pickerElement';
}
Run Code Online (Sandbox Code Playgroud)
查看助手:
class My_View_Helper_PickerElement extends Zend_View_Helper_FormElement
{
public function pickerElement($name, $value = null, $attribs = null)
{
//now I want to check if the 'foobar' option was set, otherwise use a default value
$foobar = 'default';
}
}
Run Code Online (Sandbox Code Playgroud)
视图助手有第四个可选参数,可以为您提供帮助.
如果您像这样定义视图助手:
public function pickerElement( $name, $value=null, $attribs=null, $options=null ) { }
Run Code Online (Sandbox Code Playgroud)
然后在您的实际表单元素中,您可以像这样定义它:
class My_Form_Element_Picker extends Zend_Form_Element_Xhtml {
public $helper = 'pickerElement';
public $options = array();
public function setFoobar( $foobar ) {
$this->options['foobar'] = $foobar;
}
}
Run Code Online (Sandbox Code Playgroud)
您会发现选项被传递到视图助手中并可以使用.
这段代码来自内存所以请原谅任何错误,这种方法绝对适用于我.
| 归档时间: |
|
| 查看次数: |
1629 次 |
| 最近记录: |