フォームを送信すると、エンティティで制約を定義しましたが、日付を含むテキストフィールドが検証されません。何が間違っていますか?日付を含むテキストフィールドにカスタムの日付バリデーターを作成する必要がありますか?
私のフォームクラスには
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('added', 'date', array(
'required' => false,
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'attr' => array(
'class' => 'datepicker'
)
))
}
実体で
/**
* @var date
*
* @Assert\Date(message = "test")
* @ORM\Column(name="added", type="date", nullable=true)
*/
private $added;
そしてコントローラーで(私はそれらのエラーをリストする必要があります)
$request = $this->getRequest();
$r = $this->getProfileRepository();
$profile = $id ? $r->find($id) : new \Alden\XyzBundle\Entity\Profile();
/* @var $profile \Alden\XyzBundle\Entity\Profile */
$form = $this->createForm(new ProfileType(), $profile);
if ($request->getMethod() == 'POST')
{
$form->bindRequest($request);
$errors = $this->get('validator')->validate($profile);
foreach ($errors as $e)
{
/* @var $e \Symfony\Component\Validator\ConstraintViolation */
$errors2[$e->getPropertyPath()] = $e->getMessage();
}
if (count($errors2))
{
...
} else {
$em = $this->getEntityManager();
$em->persist($profile);
$em->flush();
}