burnbright/silverstripe-componenteditor

该软件包最新版本(dev-master)没有提供许可信息。

前端组件(DataObject)创建/编辑/删除控制。

dev-master 2016-02-21 00:39 UTC

This package is auto-updated.

Last update: 2024-08-24 19:56:25 UTC


README

轻量级的单对象编辑控制,使用其 getFrontEndFields。对于一对一(has_one, belongs_to)关系非常有用。

在第一次保存时将创建一个新的对象。随后,表单将填充对象数据,并将其保存回该对象。

用法

按照以下方式更新您的DataObject

  • 实现/扩展 getFrontEndFields 方法以控制表单字段。
  • 实现/扩展 canCreatecanEditcanDelete 函数以控制访问。请参阅文档

在您的控制器类中添加 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);
    }
?>

故障排除/未来工作

确保您在您的数据对象上实现了 canCreatecanEditcanDelete 函数。

目前,如果您的对象(例如 Testimonial)包含 has_one 关系,并且您想与父对象(例如 Member)关联,则效果最佳。这是因为 EditComponentForm 只保存您正在工作的对象,而不是父对象。通过将 has_one 与 belongs_to 交换来解决保存问题。或者,在传递给表单之前保存并链接新对象(可能会创建很多空对象)。此模块有升级为处理 has_one 关系的潜力,可能通过引入回调或要求传递父对象来实现。