php - 使用 symfony 4 从 twig 中的 collectionType 表单中渲染一个字段
问题描述
我想使用 form_widget 为 collectionType 表单呈现字段。这是我的控制器:
/**
* @Route("/ticket", name="ticket")
*/
public function ticket(Request $request)
{
$data = $request->getSession()->get('orders');
$number = $data->getNumberOfTickets();
for ($i=1; $i<=$number ;$i++){
$tickets[] = new Tickets();
}
$form = $this->createForm(CollectionType::class, $tickets, ['entry_type' => TicketsType::class] );
$form->handleRequest($request);
dump($request);
return $this->render('louvre/ticket.html.twig', [
'tickets' =>$tickets,
'form' => $form->createView()
]);
}
当我尝试时:
{{ form_widget(tickets.firstname)}}
或者
{{ form_widget(form.firstname)}}
或者
{{ form_widget(form.tickets.firstname)}}
我有一个错误:
属性 "firstname" 和方法 "firstname()"、"getfirstname()"/"isfirstname()"/"hasfirstname()" 或 "__call()" 都不存在并且在类 "Symfony\" 中具有公共访问权限组件\窗体\窗体视图”。
这是我的表格:
class TicketsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('category', CheckboxType::class, [
'attr' => [
'class' => 'form-control'
]
])
->add('firstname', TextType::class, [
'attr' => [
'class' => 'form-control'
]
])
->add('lastname', TextType::class, [
'attr' => [
'class' => 'form-control'
]
])
->add('country', TextType::class, [
'attr' => [
'class' => 'form-control'
]
])
->add('dateOfBirth', DateType::class, [
'attr' => [
'class' => 'form-control'
],
'widget' => 'single_text',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Tickets::class,
]);
}
}
解决方案
要渲染一个字段,我只需要在 twig 中使用原型:
{{ form_widget(form.vars.prototype.firstname) }}
并将其添加到我的表单方法中,在我的控制器中:
'allow_add' => true
推荐阅读
- javascript - 如何在 javascript 中使用 hapijs joi 框架验证列表?
- angular - 下拉选项列表从 IE 中的下拉列表中分离
- r - 在R中将文本更改为小写,在文本挖掘中保持首字母大写
- java - 在 Android 应用程序中运行 javacv 1.5 时出错
- elasticsearch - Elastic Search Nest 创建连接
- testing - 带有 DialogFlow 的 Botium 无法将上下文保存在内存中
- c# - 如何从另一个进程中取消隐藏 WPF 窗口?
- key - 当“dfb_gfxcard_stretchblit”将在钴 19 时进行软件渲染流程?
- python-3.x - for循环不会循环到下一个元素python
- java - OpenTracing 与 Completable Futures