SilverStripe GridField和ModeAdmin创建/读取/更新/删除返回值

时间:2016-05-25 16:11:52

标签: php silverstripe

使用SilverStripe GridField或ModelAdmin进行创建/读取/更新/删除时,如何检查创建/读取/更新/删除操作的返回值(例如成功,错误等)?

例如,在按下保存按钮之前,GridField和ModelAdmin提交更改。

1 个答案:

答案 0 :(得分:1)

这是数据对象的示例验证器...当你有这个时,它会在每次保存时被调用,这会在保存之前“检查”表单中的值,并且可以通过以下方式提出特定表单字段旁边的验证错误/消息名称...

class ObjectA extends DataObject {

    static $db = array(
        "Name"          => "Varchar",
    );

    function getCMSValidator() {
        return new ObjectA_Validator();
    }
    function getValidator() {
        return new ObjectA_Validator();
    }
}

class ObjectA_Validator extends RequiredFields {
    function php($data) {
        $bRet = parent::php($data);

        if (ObjectB::get()->filter('OtherName',$data['Name']))
            $this->validationError('Name','ObjectB exists with that name',"required");

        return count($this->getErrors());
    }
}