如何在Symfony2中使用一堆不相关的实体创建表单?

黑暗莫福德

我正在使用数据库表将日志事件“翻译”成人类可读的等价物进行报告的日志解析器。

例如,类似“ start_application_minecraft”的日志条目将转换为“ Started Minecraft”

我正在尝试制作一个用于添加/更新显示文本的Web界面,但是我不知道如何将它们放入Symfony Form对象中

我有一个LogEvent实体(与性质IDTextDisplayText),和我创建了一个表单类型对应于这些属性。

它一次可以修改一个事件,效果很好,但是我想将它们全部都放在一个页面上,并用一个Submit按钮来更新所有内容。问题是我在嵌入表单时可以找到的所有文档都处理了相关的实体(例如,包含多个产品的类别),但是在我的情况下,我需要使用的所有实体都是完全不相关的。进行此设置的最佳方法是什么?

杰森·罗曼(Jason Roman)

使用Symfony的“集合”表单字段类型,然后使用Doctrine查找所需的LogEvent实体并将其传递给集合。

示例:http//symfony.com/doc/current/cookbook/form/form_collections.html

参考:http : //symfony.com/doc/current/reference/forms/types/collection.html

因此,首先要使您的LogEvent表单类型为:

class LogEventType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('text');
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'My\Bundle\Entity\LogEvent',
        ));
    }

    public function getName()
    {
        return 'log_event';
    }
}

然后将您的表单类型保存为LogEvent实体的集合:

class MultiLogEventType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add(
            'logEvents', 'collection', array('type' => new LogEventType())
        );
    }

    public function getName()
    {
        return 'multi_log_event';
    }
}

然后在Controller中,创建表单并将日志事件传递给它:

public function indexAction()
{
    // replace findAll() with a more restrictive query if you need to
    $logEvents = $this->getDoctrine()->getManager()
        ->getRepository('MyBundle:LogEvent')->findAll();

    $form = $this->createForm(
        new MultiLogEventType(),
        array('logEvents' => $logEvents)
    );

    return array('form' => $form->createView());
}

然后,在您的编辑操作中,您可以遍历日志事件并执行所需的任何操作:

public function editAction(Request $request)
{
    $em = $this->getDoctrine()->getManager();

    $editForm = $this->createForm(new MultiLogEventType());
    $editForm->handleRequest($request);

    if ($editForm->isValid())
    {
        foreach ($logEvents as $logEvent) {
            // perform any logic you need to here
            // (ex: removing the log event; $em->remove($logEvent);)
        }
        $em->flush();
    }

    return $this->redirect($this->generateUrl('log_event_edit'));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Symfony2中创建具有一个实体的多行的表单

来自分类Dev

如何在MySQL中使用不相关的表创建视图

来自分类Dev

如何在MySQL中使用不相关的表创建视图

来自分类Dev

如何在Power BI中使用DAX在不相关表中搜索字符串?

来自分类Dev

Git状态中有一堆不相关的文件

来自分类Dev

如何在两个实体(不相关的实体)之间使用 Hibernate 进行连接

来自分类Dev

Symfony2获得组中不相关的多对多用户

来自分类Dev

Symfony2表单-如何自动填充相关实体的字段?

来自分类Dev

Symfony2表单-如何自动填充相关实体的字段?

来自分类Dev

Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

来自分类Dev

symfony2形式:如何保存实体,以及如何在同一表单中添加多个实体?

来自分类Dev

如何在ASP.NET MVC 5中使用三个不相关的视图

来自分类Dev

如何在多个不相关的解决方案中使用(和编辑)项目?

来自分类Dev

如何在Wordpress中创建与任何页面都不相关的菜单标题?

来自分类Dev

如何使用Doctrine在Symfony2中创建复杂的表单

来自分类Dev

如何在SQL中检查多个不相关的条件?

来自分类Dev

如何在不相关的ViewModel中设置数据

来自分类Dev

无法使用symfony原则将不相关或不相关的表连接在一起

来自分类Dev

Symfony2:无法使用表单创建新实体

来自分类Dev

如何在Gridview Yii2中加入不相关的表并显示

来自分类Dev

绝对导入如何与sitecustomize.py中不相关的导入一起使用?

来自分类Dev

如何在symfony2中使用图形?

来自分类Dev

如何在Symfony2中使用misc函数?

来自分类Dev

如何在symfony2中使用translation:update?

来自分类Dev

DRY:如何在Symfony2项目的多个实体中使用此代码?特质?

来自分类Dev

如何在TWIG中使用参数访问实体功能-Symfony2

来自分类Dev

DRY:如何在Symfony2项目的多个实体中使用此代码?特质?

来自分类Dev

如何在父级的网格中创建一堆div堆栈?

来自分类Dev

如何在Symfony2中单向地保持一对一实体

Related 相关文章

  1. 1

    如何在Symfony2中创建具有一个实体的多行的表单

  2. 2

    如何在MySQL中使用不相关的表创建视图

  3. 3

    如何在MySQL中使用不相关的表创建视图

  4. 4

    如何在Power BI中使用DAX在不相关表中搜索字符串?

  5. 5

    Git状态中有一堆不相关的文件

  6. 6

    如何在两个实体(不相关的实体)之间使用 Hibernate 进行连接

  7. 7

    Symfony2获得组中不相关的多对多用户

  8. 8

    Symfony2表单-如何自动填充相关实体的字段?

  9. 9

    Symfony2表单-如何自动填充相关实体的字段?

  10. 10

    Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

  11. 11

    symfony2形式:如何保存实体,以及如何在同一表单中添加多个实体?

  12. 12

    如何在ASP.NET MVC 5中使用三个不相关的视图

  13. 13

    如何在多个不相关的解决方案中使用(和编辑)项目?

  14. 14

    如何在Wordpress中创建与任何页面都不相关的菜单标题?

  15. 15

    如何使用Doctrine在Symfony2中创建复杂的表单

  16. 16

    如何在SQL中检查多个不相关的条件?

  17. 17

    如何在不相关的ViewModel中设置数据

  18. 18

    无法使用symfony原则将不相关或不相关的表连接在一起

  19. 19

    Symfony2:无法使用表单创建新实体

  20. 20

    如何在Gridview Yii2中加入不相关的表并显示

  21. 21

    绝对导入如何与sitecustomize.py中不相关的导入一起使用?

  22. 22

    如何在symfony2中使用图形?

  23. 23

    如何在Symfony2中使用misc函数?

  24. 24

    如何在symfony2中使用translation:update?

  25. 25

    DRY:如何在Symfony2项目的多个实体中使用此代码?特质?

  26. 26

    如何在TWIG中使用参数访问实体功能-Symfony2

  27. 27

    DRY:如何在Symfony2项目的多个实体中使用此代码?特质?

  28. 28

    如何在父级的网格中创建一堆div堆栈?

  29. 29

    如何在Symfony2中单向地保持一对一实体

热门标签

归档