php - 分别获取某些表单输入
问题描述
我有这个表格,我必须分别获取 3 个字段(名称和 2 个日期)的值,格式化日期并将它们放入 arrayCollection。我只想获取这 3 个字段,并让表单字段的其余部分像往常一样自动插入。同时,当我回来编辑表单时,我想知道如何分配这些值来填充表单。
解决方案
根据此文档创建表单类,解决方案的尝试是执行以下操作:
我们假设您有一个实体名称Article。
- 您的表格可能类似于:
class ArticleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('title', TextType::class)
->add('author', TextType::class)
->add('name', TextType::class, [
'mapped' => false
])
->add('date1', DatetimeType::class, [
'mapped' => false
])
->add('date2', DatetimeType::class, [
'mapped' => false
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Article::class,
]);
}
}
这里有选项'mapped' => false因为您不想将它与实体 Article 映射。
- 然后在你的控制器中,你可以有类似的东西
/**
* @Route("/articles", methods={"POST", "GET"}, name="app_post_article")
*/
public function postArticle(Request $request, EntityManagerInterface $em)
{
$form = $this->createForm(ArticleType::class);
$form->handleRequest($request);
if ($request->isMethod('POST') && $form->isSubmitted() && $form->isValid()) {
$name = $form->get('name')->getData();
$date1 = $form->get('date1')->getData();
$date2 = $form->get('date2')->getData();
//.... do something
}
//... Do other thing
}
/**
* @Route("/articles/{id}", methods={"POST", "GET"}, name="app_edit_article")
*/
public function editArticle(Request $request, Article $article, EntityManagerInterface $em)
{
$form = $this->createForm(ArticleType::class, $article);
// $prevName, $prevDate1, $prevDate2 must be retreive first...
$form->get('name')->setData($prevName);
$form->get('date1')->setData($prevDate1);
$form->get('date2')->setData($prevDate2);
$form->handleRequest($request);
if ($request->isMethod('POST') && $form->isSubmitted() && $form->isValid()) {
$name = $form->get('name')->getData();
$date1 = $form->get('date1')->getData();
$date2 = $form->get('date2')->getData();
//.... do something
}
//... Do other thing
}
这只是一个想法。
推荐阅读
- c# - 如何根据屏幕上的触摸位置发射球?
- android - 如何以编程方式判断我的应用程序是否正在调试?
- python - 在 save() 期间 Peewee 检查“唯一约束失败”
- javascript - jquery函数在asp.net中使用Updatepanel不起作用
- php - ghostscript 9.26 更新打破了多页 PDF 的 imagick readImage
- javascript - 自定义导航栏中的下拉菜单
- java - getUIsettings.setMyLocationButtonEnabled(true) 不工作
- r - R 3.5 中的 system2() 忽略标准输出参数
- c# - 事件中的链修改
- python - ValueError:使用不是符号张量的输入调用层 concatenate_1