2012-01-04 148 views
2

我正在學習Zend Framework的開始。設置Zend ValidatorRules的最大和最小字符串長度

我需要檢查,如果字符串有超過最大,也就是說,200,和最小長度爲0

這裏是我創建的validatorRules:

$validators = array('descr' => array(array('stringLength', array('max'=>200)))); 

但這種驗證返回,如果假該stringLength爲0

我要的是一個驗證的是確保我的字符串低於200(0長度是可接受的)

編輯:我不是ü唱形式,而是一個REST Web服務,它接受來自查詢字符串的輸入,所以'setRequired'在我的情況下不起作用。

任何解決方案?

謝謝。

回答

3

OK確保你沒有setRequired(true);(或將其設置爲false,如果你喜歡),然後使用addValidator('stringLength', false, array(0, 200))

+0

感謝您的回覆。我想我沒有清楚地說明我的問題。我想驗證器返回true,即使我的字符串是長度爲0.謝謝。 – VHanded 2012-01-04 03:57:43

+0

啊對不起,請參閱我的編輯 – redmoon7777 2012-01-04 04:10:56

+0

謝謝,但我沒有使用Zend_Form,而是使用Zend_Rest_Controller,其中輸入從querystring傳入。 – VHanded 2012-01-04 07:00:23

-1

這爲我工作。但是當文本長度不在2和200的限制之間時,我看不到任何錯誤消息。

這是我使用的代碼。

 
    $this->addElement('text', 'name', array(
     'filters' => array('StringTrim'), 
     'validators' => array(array('StringLength', false, array(2, 100)),), 
     'required' => true, 
     'label' => "First Name", 
     'value' => "firstname", 
     'class' => 'classname' 
    )); 

+0

'StringLength'之後,什麼意思是param false? – 2016-04-17 19:17:32