2017-02-21 26 views
1

私はこのDATETYPEを持っています。それは成功し、コントローラにsymfonyのフォームDATETYPE検証

if ($form->isValid()) 

を渡し、エラーは最終的に、これはnullにすることはできませんので、クエリが失敗した

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'date' cannot be null 

で飛び出します。しかし、私はそれがエラーを返して、日付が空のときにフォームを検証させないようにしたいと思います!先に

/** 
* @var \DateTime 
* 
* @ORM\Column(name="date", type="datetime") 
*/ 
private $date; 

ありがとう:要求され、実体として

+0

エンティティコードを表示できますか? – Veve

+0

日付がないisValidを渡していますか?あなたのコードをFormBuilderの新しいインスタンスにコピーし、 'submit([])'の後ろに 'isValid()'を返し、falseを返しました。 – mickadoo

+1

@mickadooこれを回答として投稿する必要があります。フォームを提出しないと – Joshua

答えて

1

必要なオプション

にこれは、検証から表層とは無関係です。最高でも、 あなたのフィールドタイプをSymfonyに推測させる場合、このオプションの値は の検証情報から推測されます。

フォームを呼び出すと、エンティティを検証するためのバリデータサービスとエンティティの検証マッピングが有効になります。

必要なものを設定するにはconstraintが必要です

+0

パーフェクト、ありがとう! –

0

、変更する必要があります:

$builder 
->add('date', DateType::class, array(
    'widget' => 'single_text', 
    'format' => 'dd/MM/yyyy', 
    "required"=>true, 
    'label' => "jour.date")) 

TO:symfony docsから

$builder 
->add('date', DateTimeType::class, array(
    'widget' => 'single_text', 
    'format' => 'dd/MM/yyyy', 
    "required"=>true, 
    'label' => "jour.date")) 
+0

ねえ、お返事いただきありがとうございますが動作しませんでした。それでも問題なく検証をパスします。タイプはより正確ですが、私はとにかくそれを維持します –

関連する問題