【发布时间】:2021-08-29 17:45:43
【问题描述】:
我想知道是否可以自动为类型添加的字段赋值:
- 日期时间
- 实体
感谢您的帮助
public function buildForm(FormBuilderInterface $builder, array $options)
{
$user = $options['user']; // entity User
$player = $options['player']; // entity Player
$today = new DateTime('now');
$builder
->add('fieldA')
->add('fieldB')
->add('fieldC');
$builder
->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($user, $player, $today) {
$form = $event->getForm();
$datas = $event->getData();
$form->add('today');
$form->add('user');
$form->add('player');
//dd($form); ok = 3 fields added
$datas['dateDuJour'] = $today;
$datas['user'] = $user;
$datas['player'] = $player;
//dd($datas); ok = 3 assigned values
$form->setData($datas);
question 1 : how to insert the data in the form
question 2 : pb from entity (object) to string
//dd($form, $datas);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Evaluation::class,
'user' => null,
'player' => null
]);
}
}
我想过插入 type = hidden 的 3 个字段并使用 Data Transformer
我不知道最佳做法是什么?
如果你有一个具体的例子
【问题讨论】:
-
你能更准确地解释一下你的情况吗,我的意思是你想用数据做什么?为什么是“PRE_SUBMIT”?
标签: php forms symfony addeventlistener