Zend_Filter_Input ve boş değerler

3 Cevap php

Ben bir kullanıcı bir değer girmezse Zend_Filter_Input, form verilerini doğrulamak ve hata iletileri özelleştirmek istediğiniz kullanıyorum. Her alan farklı hata mesajı alır önemlidir.

Zend Framework 1.8.0 ile ben "doğrulayıcı" parametresi için şu diziyi kullanılan Zend_Filter_Input:

$validators = array(
	'salutation' => array(
		new Zend_Validate_NotEmpty(),
		Zend_Filter_Input::MESSAGES => array(
			Zend_Validate_NotEmpty::IS_EMPTY => "Please enter a salutation"
		)
	),
	/* ... */
);

Ben ZF 1.8.4 için yükseltilmiş beri, ben her zaman ("Sen alan '% alan%' için boş olmayan bir değer vermek gerekir") boş alanları için varsayılan mesaj alıyorum. Alan boş ise Açıkçası Zend_Filter_Input, artık Zend_Validate_NotEmpty doğrulayıcı aramıyor.

Bu davranışı değiştirmek için bir yol ya da her alan için özelleştirilmiş "boş" iletileri almak için başka bir yolu var mı?

3 Cevap

Bu boş alanları tutarken, Zend_Filter_Input davranışı değişti gibi görünüyor. Boş alanlar kuralı doğrulayıcılarıyla tarafından işlenen asla. Bir alan boş ve allowEmpty ayarlamak true ise, onaylayıcıların hiçbiri kullanılır. Alan yanlış ve boş allowEmpty ayarlı ise, o boş değerler için varsayılan ileti ayarlanır. Şu anda belirli bir alan için bu mesajı özelleştirmek için hiçbir yolu yoktur.

Davranışı değişmedi. Bu bir hata değildir (http://framework.zend.com/issues/browse/ZF-7394)

Bu deneyin:

    $validators = array(
        'salutation' => array('NotEmpty', Zend_Filter_Input::MESSAGES => 'Please enter a salutation')
        );

I don't know why, but seems they changed the constant "isEmpty" with "NotEmpty" (without including it in the Zend_Validate_NotEmpty class). Sometimes I just go nuts with Zend. :)