我是symfony的新手。 现在我有一个新项目,我需要一个建议,选择什么技术。 我发现,symfony4几乎所有演示都安装了easy_admin,它看起来是不错的选择。 但是现在几天我一直在努力解决一些问题和缺乏文档,信息。 所以我想知道 - 我的想法可以通过简单的管理方式轻松完成(不是写几乎所有的自定义),我只是找不到合适的文档或我需要选择其他解决方案(任何建议?)
所以我拥有一个包含10个以上相关表的数据库。 当我创建新的基本实体时,我想在一个窗口中添加所有相关的实体。 并且确切地说,没有选择已经准备好的,因为我需要以一种形式完成工作,不要在10多个表格之间移动来制作一条记录(客户不关心关系)。 Maye我可以创建基本记录并在编辑时添加所有相关实体。 相关实体几乎可以是所有类型 - OneToOne OnetoMany ManytoMany。
所以我真的需要建议,如何完成这项工作,因为我在关系中尝试了多种方式,我只能从已经插入的记录中选择,但不能添加新的。 所有相关实体都有多个输入字段 - 它需要生成完整的表单。
答案 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(具有字段code
和value
),并且您想直接在“用户”编辑表单中编辑这些设置:
表单类:
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
中偶然发现了这种解决方案