根据动态修改表单字段编辑对象
编辑该页面根据动态修改表单字段编辑对象
这是一个很常见的情况,当您需要修改表单的字段,因为编辑对象的属性或结构。让我们假设您只想显示管理表单字段为新对象和你不希望它是显示的对象已被保存到数据库,现在正在编辑。
这是一个为你做到这一点。
在你的管理
类的configureFormFields
方法你可以获取当前对象通过调用$ this - > getSubject ()
。返回的值将您的相关模型。和另一种方法isCurrentRoute
检查当前请求的路径。然后,您应该能够动态地添加所需字段的形式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40
/ / src / Admin / PostAdmin名称空间应用程序\管理;使用奏鸣曲\AdminBundle\管理\AbstractAdmin;使用奏鸣曲\AdminBundle\形式\FormMapper;使用ob娱乐下载\组件\形式\扩展\核心\类型\TextType;使用ob娱乐下载\组件\形式\扩展\核心\类型\TextareaType;使用ob娱乐下载\组件\形式\扩展\核心\类型\文件类型;最后类PostAdmin扩展AbstractAdmin{/ /……受保护的函数configureFormFields(FormMapper美元形式):无效{/ /描述字段会被添加到表单:美元形式- >add (“描述”,TextareaType::类);美元主题=美元这- >getSubject ();/ /如果你使用自动生成的标识符如果(美元主题- >getId () = = =零){/ /缩略图字段只会添加创建编辑项目时美元形式- >add (“缩略图”,文件类型::类);}/ / Name字段将只有当创建一个项目如果(美元这- >isCurrentRoute (“创建”)){美元形式- >add (“名字”,TextType::类);}/ / foo字段将添加相关acme.demo.admin.code管理动作电流时的编辑形式如果(美元这- >isCurrentRoute (“编辑”,“acme.demo.admin.code”)){美元形式- >add (“foo”,“文本”);}}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。