【问题标题】:Default element value using Zend_Form with Zend_Config_Ini使用 Zend_Form 和 Zend_Config_Ini 的默认元素值
【发布时间】:2010-01-13 09:13:19
【问题描述】:

我一直在寻找几个小时,但在任何地方都找不到关于如何使用 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”。

提前致谢!!

【问题讨论】:

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


    【解决方案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' ) ;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多