Значение элемента по умолчанию с использованием Zend_Form и Zend_Config_Ini - PullRequest
0 голосов
/ 13 января 2010

Я искал часы и нигде не могу найти документацию о том, как установить значение элемента по умолчанию, используя 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!

Если предоставленное значение "rows" не является "цифрами", тогда я хочу, чтобы оно было установлено на "0".

Заранее спасибо !!

1 Ответ

1 голос
/ 14 января 2010
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' ) ;
    }
}
...