需要有关Symfony4 easy_admin相关实体表单创建的建议

时间:2018-01-29 09:45:16

标签: php symfony doctrine-orm doctrine symfony4

我是symfony的新手。 现在我有一个新项目,我需要一个建议,选择什么技术。 我发现,symfony4几乎所有演示都安装了easy_admin,它看起来是不错的选择。 但是现在几天我一直在努力解决一些问题和缺乏文档,信息。 所以我想知道 - 我的想法可以通过简单的管理方式轻松完成(不是写几乎所有的自定义),我只是找不到合适的文档或我需要选择其他解决方案(任何建议?)

所以我拥有一个包含10个以上相关表的数据库。 当我创建新的基本实体时,我想在一个窗口中添加所有相关的实体。 并且确切地说,没有选择已经准备好的,因为我需要以一种形式完成工作,不要在10多个表格之间移动来制作一条记录(客户不关心关系)。 Maye我可以创建基本记录并在编辑时添加所有相关实体。 相关实体几乎可以是所有类型 - OneToOne OnetoMany ManytoMany。

所以我真的需要建议,如何完成这项工作,因为我在关系中尝试了多种方式,我只能从已经插入的记录中选择,但不能添加新的。 所有相关实体都有多个输入字段 - 它需要生成完整的表单。

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您只需要EasyAdmin提供的一些基于PHP的自定义机制:Creating Complex and Dynamic Backends。欢迎更多的项目要求。

是的,这是可能的。

答案 1 :(得分:0)

创建示例项目,可在github Web Forest上使用 目标是明确手册,如何做正式的EasyAdmin手册或演示中没有完全解释的事情。

项目目标nr.1:从一个Forest插入和/或编辑表单中实现所有相关实体的插入。所有类型 - OneToOne,OneToMany,ManyToMany。 解释新手,我们究竟做错了什么以及如何更清楚地做事。

请随意 - 评论,提交更改,添加更多功能。

答案 2 :(得分:0)

您需要创建自定义表单类,并通过entry_type选项在yaml配置文件中引用它。例如,假设用户实体具有相关的实体UserSettings(具有字段codevalue),并且您想直接在“用户”编辑表单中编辑这些设置:

表单类:

class UserSettingsType extends AbstractType
{

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => UserSettings::class
        ]);
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('code')
            ->add('value');
    }
}

YAML配置:

easy_admin:
    entities:
        User:
            class: App\Entity\User
            edit:
                fields:
                    - ...
                    - { property: 'settings', type: 'collection', type_options: { entry_type: 'App\Form\EasyAdmin\UserSettingsType' , ... }}

我在question

中偶然发现了这种解决方案