にデフォルトのデータを変更することはだから私はCategory
とCategory
が多くProduct
エンティティを持っているProduct
エンティティを持っていると言います。マイCategory
フォームビルダは、次のようになります。symfonyは - プロトタイプ
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class)
->add('products', CollectionType::class, array(
'entry_type' => ProductType::class,
'allow_add' => true,
'by_reference' => false,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__product_prot__'))
->add('save', SubmitType::class))
;
}
そして、私のProduct
フォームビルダは、次のようになります。私が知りたいのですがどのような
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class)
->add('dateAdded', DateType::class)
;
}
がいるのでいつでも新しいdateAdded
の値を設定する方法ですプロトタイプが追加され、今日の日付が表示されますか?
エンティティ__construct()
関数を使用してデフォルトを作成することを推奨している人もいますが、これはプロトタイプでは機能しません。私はまた、placeholderオプションを見つけたが、私はそれが常に今日の日付を持つようにそれを使用するかどうかはわかりません - これが表示されない、すなわち、動作するように:
->add('addDate', DateType::class, array(
'placeholder' => new \DateTime();
))
誤りがあるとして:Attempted to call function "DateTime" from the global namespace
さらに、CollectionType
フィールドにprototype_dataフィールドがありますが、データを1つのフィールドに入れて動的にする方法を指定する方法がわかりません。
誰かが私に最良の使用方法と正しい構文を教えてもらえますか?
編集:
Category
エンティティのために正常に動作しますpublic function __construct()
{
$this->addDate = new \DateTime();
}
(私はそれをテストのために日付フィールドを与える場合)ではなく、試作さProduct
エンティティ:
だから私の__construct()
がどのように見えます。私が作成したProduct
エンティティと新しいフォームをロードする場合興味深いことに、私も見つけた
{% block _category_products_entry_row %}
<li>
{{ form_row(form.name) }}
{{ form_row(form.dateAdded) }}
</li>
{% endblock %}
:私はフォームにプロトタイプをロードすると、私はちょうどプロトタイプがどのように見える1月1日、2011年のデフォルトの日付を取得しますすでにCategory
コントローラでは、原因に表示されますdateAdded
フィールド:それはデフォルト値だとして
{% for product in form.products %}
{{ form_row(product) }}
{% endfor %}
は、今日の日付を持っています。これは、チュートリアルのHow to Embed a Collection of Formsと同じ方法で行われるプロトタイプの読み込みが原因であることを示唆しています。
を 'お役に立てば幸いです。あなたのコンストラクタはどのように見え、エラーは何ですか? – Rhono
私のコンストラクタを追加しました。その中に 'DateTime'を設定しようとするとエラーは発生しません。デフォルト値は基本値です。もし 'DateTime'に' now'や 'today'のような引数を与えても同じことです。 – Darkstarone
ええ、あなたはコンストラクタが正常です、それは良いです。どんな基本的な価値が設定されていますか? – Rhono