1
私はエンティティクラスを使用しない単純なフォームを使用します。フォームは、空の値または無効な値でも常に検証をパスします。
投稿後、バリデーターを使用して値を検証したいが、値が空であるか無効であってもエラーリストのカウントは常にゼロです。私はあなたがフォームが有効であることを伝え、テスト内$errorList
内の要素の数をカウントするので、これは正常だと思い
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\MinLength;
use Symfony\Component\Validator\Constraints\Collection;
public function formAction(){
$collectionConstraint = new Collection(array(
'name' => array(new MinLength(5)),
'email' => array(new Email(array('message' => 'Invalid email address'))),
));
$options = array('validation_constraint' => $collectionConstraint);
$form = $this->createFormBuilder(null, $options)
->add('name', 'text', array('label' => '', 'attr' => array('placeholder' => 'Your name')))
->add('email', 'email', array('label' => '', 'attr' => array('placeholder' => 'E-mail')))
->getForm();
$request = $this->getRequest();
$error = false;
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$data = $form->getData();
$errorList = $this->get('validator')->validateValue($data, $collectionConstraint);
// count($errorList) is always zero even when the values are empty or invalid…
}
else {
$error = true;
}
}
// ... snip ...
}
ええ、私はすでにそれを持って、エラーはありません。 私の質問は、それが想定どおりに動作しない理由です。 無効なメールがある場合、またはフィールドが空に設定されている場合は、フォームが送信されていない場合にエラーが発生する可能性があります。 この問題を提出する前に、 – cristobal