【问题标题】:Symfony build form text fields with data from arraySymfony 使用数组中的数据构建表单文本字段
【发布时间】:2016-07-14 14:03:10
【问题描述】:

在 Symfony 中,我需要创建一个带有文本字段的表单,该表单将保存从数据库中提取的数据以进行编辑。目前我有这段代码,我收到一个问题,有四个答案:

$question = $this->getDoctrine()->getRepository('QuizBundle:Question')->findOneByIdJoinedToCategory($id);
$data = $question->getAnswers();

这会检索存储在数组集合中的问题和答案。 目前我可以使用问题数据构建表单,但是如何使用数组集合中的答案来构建带有数据的文本字段? 我还可以将数组集合转换为常规数组,如果是这样,如何使用常规数组中的数据构建文本字段? 谢谢

表单生成器:

$form = $this->createFormBuilder($question)
            ->add('Image', TextType::class)
            ->add('Question', TextType::class)
            ->add('answers', TextType::class,
                   array('data' => array()))
            ->add('Submit',SubmitType::class, array('label' => 'Edit Record'))
        ->getForm();

【问题讨论】:

  • 你检查EntityType了吗?
  • @Glasset 立即尝试。使用实体类型,我从表中得到所有答案。我只需要特定问题的答案。使用发布的代码,我设法在数组集合中获取问题和答案(我的实体与 oneToMany 相关)但我不知道在构建表单时如何让文本字段包含答案值。
  • 你必须从控制器传递'$options'数组...这是一种方法,但还有另一种方法,但我现在不记得了
  • @V.Sambor 我现在只是在控制器中构建表单

标签: php arrays forms symfony


【解决方案1】:

请查看 symfony 文档中的此页面 http://symfony.com/doc/current/reference/forms/types/collection.html
CollectionType Field 就是您要查看的内容。

【讨论】:

  • 类似这样的东西:->add('answers', CollectionType::class, array( 'entry_type' => TextType::class, 'entry_options' => array( 'attr' => array('class' => 'email-box') ), ))
  • 很高兴它有帮助 :) 一切顺利!
  • 我无法让它工作,你可以看到我对 Symfony 很陌生,这种表单构建让我很头疼。从我的帖子到从集合中创建文本字段,我需要传递 $question 还是 $data?在 add 语句中我应该在哪里传递它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2023-03-30
  • 1970-01-01
  • 2015-02-01
  • 2012-05-01
相关资源
最近更新 更多