3

みんな

Symfony2 で空の日付とフォームに問題があります。

空の日付でエンティティを作成すると、正常に動作し、NULL 値がデータベースに挿入されます。しかし、編集したいときは、今日のようにレンダリングされ、empy_values をレンダリングする方法が見つかりませんでした

予想通り、「日付」は「選択肢」ではないため、「preferred_choices」は機能しません。

新しい \DateTime() がどこかで呼び出されているようです。

index および show アクションは問題ありません。

[index/show.html.twig]

            {% if entity.dueDate %}

            {{ entity.dueDate|date('Y-m-d') }}

            {% endif %}

コントローラーで尋ねると、動作は期待どおりです

[コントローラ]

if (!$entity->getDueDate()) {

 // enters here when there is NULL in the database

}

エンティティとフォームの定義は次のとおりです。

[実在物]

/**

 * @var date $dueDate

 *

 * @ORM\Column(name="dueDate", type="date", nullable="true")

 */

private $dueDate;

[形]

  $builder->add('dueDate', 'date', array('label'=>'Due date', 'empty_value' => array('year' => '----', 'month' => '----', 'day' => '----'),'required'=>false))

ヒントをください、よろしくお願いします。

2011-06-26 から関連する質問があり、Google グループには回答がありません

https://groups.google.com/forum/#!msg/symfony2/nLUmjKzMRVk/9NlOB1Xl5RwJ

http://groups.google.com/group/symfony2/browse_thread/thread/9cb5268caccc4559/1ce5e555074ed9f4?lnk=gst&q=empty+date+#1ce5e555074ed9f4

4

3 に答える 3

0

私は自分でフォームをレンダリングしたくありませんでしたが、無関係の問題のためにすでにレンダリングしていたので、何らかの修正を開発しました。

[edit.html.twig]
   <div class="entry {% if not entity.dueDate %}nullabledate{% endif %}">
     {{ form_label(form.dueDate) }}
     {{ form_errors(form.dueDate) }}
     {{ form_widget(form.dueDate) }}
</div>

[いくつかのjavascriptファイルに追加]

jQuery(document).ready(function() {
  var nullDate = function(id) {
    $(".nullabledate select").each(function(key,elem){
      $(elem).val('');
    })
  }
  nullDate();
}
于 2012-06-13T21:55:53.950 に答える