burnbright / silverstripe-componenteditor
该软件包最新版本(dev-master)没有提供许可信息。
前端组件(DataObject)创建/编辑/删除控制。
dev-master
2016-02-21 00:39 UTC
Requires
- silverstripe/framework: ~3.1
This package is auto-updated.
Last update: 2024-08-24 19:56:25 UTC
README
轻量级的单对象编辑控制,使用其 getFrontEndFields
。对于一对一(has_one, belongs_to)关系非常有用。
在第一次保存时将创建一个新的对象。随后,表单将填充对象数据,并将其保存回该对象。
用法
按照以下方式更新您的DataObject
- 实现/扩展
getFrontEndFields
方法以控制表单字段。 - 实现/扩展
canCreate
、canEdit
和canDelete
函数以控制访问。请参阅文档。
在您的控制器类中添加 EditComponentForm
<?php public function Form() { //returns an empty object, if not aready present $testimonial = $this->owner->getMember()->Testimonial(); return new EditComponentForm($this->owner, "Form", $testimonial); } ?>
故障排除/未来工作
确保您在您的数据对象上实现了 canCreate
、canEdit
和 canDelete
函数。
目前,如果您的对象(例如 Testimonial)包含 has_one 关系,并且您想与父对象(例如 Member)关联,则效果最佳。这是因为 EditComponentForm 只保存您正在工作的对象,而不是父对象。通过将 has_one 与 belongs_to 交换来解决保存问题。或者,在传递给表单之前保存并链接新对象(可能会创建很多空对象)。此模块有升级为处理 has_one 关系的潜力,可能通过引入回调或要求传递父对象来实现。