使用Zend_Form和Zend_Config_Ini的默认元素值

时间:2010-01-13 09:13:19

标签: zend-framework zend-form zend-form-element

我一直在寻找几个小时,但我无法在任何地方找到任何关于如何使用Zend_Config_Ini作为Zend_Form的初始化来设置元素默认值的文档。

我已经在正常的PHP代码中看到了有关如何执行此操作的文档...

$validators = array(
    'month' => array(
        'digits',
        'default' => '1'
    )
);
// no value for 'month' field
$data = array();
$input = new Zend_Filter_Input(null, $validators, $data);
echo $input->month; // echoes 1

但是没有关于如何在.ini文件中设置它的文档。我已经尝试了一切(显然不是,但似乎是这样)!!

有谁知道“语法”?

query.elements.rows.type = "text"
query.elements.rows.options.required = true
query.elements.rows.options.validators.rows.validator = "digits"
query.elements.rows.default = 0 # DOESN'T WORK!

如果提供的“行”值不是“数字”,那么我希望它设置为“0”。

提前致谢!!

1 个答案:

答案 0 :(得分:1)

query.elements.rows.type = "text"
query.elements.rows.options.required = true
query.elements.rows.options.validators.rows.validator = "digits"
query.elements.rows.options.value = 0 # This works ;)
  

如果提供的“行”值不是“数字”,那么我希望它设置为“0”。

默认选项无法实现。请尝试以下代码:

if( !$form->isValid( $_POST ) ) {
    $errorsMessages = $form->getMessages();
    if(isset($errorsMessages['rows']['notDigits'])){
        $form->getElement( 'rows' )->setValue( '0' ) ;
    }
}