0


Zendフォームに必要な要素があります:

$name = new Zend_Form_Element_Text('name');
$name->setLabel('Name')
   ->setValue(isset($plan)?$plan['name']:'')
   ->setRequired()
   ->setAttribs(array('class' => 'required', 'maxlength' => 50))
   ->addValidators(array(new Zend_Validate_StringLength(array('min' => 1, 'max' => 50)),
      new Zend_Validate_Db_NoRecordExists(array('table' => 'plan', 'field' => 'name')))
   ->addFilters(array(new Zend_Filter_StringTrim, new Zend_Filter_StripTags));

すべてのバリデーターは完璧に機能します。しかし、それは1つの問題です。コントローラでは、 getValidValuesを使用してフォームをチェックします(これは私にとって必須です)。また、レコードがDBに存在する場合、要素は無効であり、Zendはこの要素をクリアします。そして、「値が必要です」というメッセージを受け取ります。DB内の行の存在に関するメッセージを取得するにはどうすればよいですか?
英語でごめんなさい。前もって感謝します。

4

2 に答える 2

1

それは私にとって役に立ちました:
->setAllowEmpty(false)代わりに->setRequired()

于 2011-01-04T15:39:16.167 に答える
1

試す

setRequired(true)

これは正しいです ;)

于 2011-11-30T12:10:08.833 に答える