我想在表單中指定一個默認值,因此創建實體時表單字段具有值(非空或空)。但是,在編輯實體時,顯然應該顯示存儲的值,而不是默認值。如何在Symfony表單中指定默認值
我的實體將自己初始化爲構造的一部分 - 所以當一個實體是新的並且尚未保持時,應該設置這些值。
如何通知FormType使用默認值超過持久狀態?我試過的每件事似乎都暗示它是一種或另一種不是兩種?
這是怎麼做的Symfony 3.2 + ???
編輯|
控制器:
public function newAction (Request $request)
{
$quoteItem = new QuoteItem();
$form = $this->createForm('UniflyteBundle\Form\QuoteItemType', $quoteItem, ['allow_extra_fields' => true]);
$form->add('QuoteFlight', QuoteFlightType::class);
}
表格類型:
public function configureOptions (OptionsResolver $resolver)
{
$resolver->setDefaults([
//'data' => new \UniflyteBundle\Entity\QuoteFlight()
'data_class' => QuoteFlight::class
]);
}
public function buildForm (FormBuilderInterface $builder, array $options)
{
$builder
->add('specMajorSetupCharge', null, [
//'empty_data' => QuoteFlight::SPEC_MAJOR_SETUP_CHARGE,
'data' => QuoteFlight::SPEC_MAJOR_SETUP_CHARGE,
'label' => '* Setups Charge'
])
// ...
}
你的代碼是什麼樣的? –
對不起 - 我錯過了:) –
如果我明確設置「數據」,那麼總是在表單中顯示的實質值超過了寫入實體值。我不明白爲什麼實體的構造時不使用實體的默認值 - 而且在實體從數據庫中加載時爲什麼沒有使用實體的默認值 –