0 レビュー
2 回答
php-ZF2フォームの検証は空です検証は常に失敗します
ひほ、
ZF2フォームに問題があります。 送信するたびに、次のエラーが発生しました:
(result of $form->isValid() and var_dump($form->getMessages());
array (size=1)
'imagecode' =>
array (size=1)
'isEmpty' => string 'Value is required and can't be empty' (length=36)
以下は「imagecode」-formfieldcodeです:
public function __construct($name = null)
{
parent::__construct('advert');
$this->setAttribute('method', 'post');
$this->add(array(
'name' => 'imagecode',
'type' => 'Zend\Form\Element\Textarea',
'attributes' => array(
'required' => 'required',
),
'options' => array(
'label' => 'Bannercode:'
),
));
そしてバリデーター:
public function getInputFilter()
{
if (!$this->_inputFilter) {
$inputFilter = new InputFilter();
$factory = new InputFactory();
...
$inputFilter->add($factory->createInput(array(
'name' => 'imagecode',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'min' => '3',
'max' => '5000',
),
),
),
)));
$this->_inputFilter = $inputFilter;
}
return $this->_inputFilter;
}
他のフィールドは正しく機能し、正しく検証されていますが、Textareaは正しく機能していません。
ついにControllerCode:
$advert = $service->getAdvertById($id);
$form = $service->getAdvertForm();
$request = $this->getRequest();
$form->bind($advert);
if ($request->isPost()) {
$filter = new AdvertFilter();
$form->setData($request->getPost());
$form->setInputFilter($filter->getInputFilter());
この後、検証は失敗し、理由はわかりません。 誰もが私を助けてくれることを願っています。
わからない
0
レビュー
答え :
解決策:
この行を見てください:
'required' => 'required,
そして... 変更先:
'required' => 'required',
わからない
0
レビュー
答え :
解決策:
わかりました。
がHTMLコードを入力しようとしています array('name' => 'StripTags')
削除しました。
時々それはとても単純です._。'
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。