搜索中心
搜索中心 搜索快照

数据表单 - 组件自定义hook

有两种方式修改字段的行为

① 通过继承 ModStart\Field\AbstractField 类,实现以下方法

class XxxField extends \ModStart\Field\AbstractField
{
    // 字段值序列化
    // 数据从存储系统(如数据库)读取出来,会调用此方法转换为字段 $value 值
    public function unserializeValue($value, AbstractField $field)
    {
        return $value;
    }
    
    // 字段值序列化
    // 数据提交到存储系统(如数据库)时,会调用此方法转换为存储值
    public function serializeValue($value, $model)
    {
        return $value;
    }
    
    // 字段输入获取准备
    // 数据从用户输入获后需要进行的处理,如转换、验证等,如果异常可以直接抛出 BizException 异常
    public function prepareInput($value, $dataSubmitted)
    {
        return $value;
    }
}

② 在使用时动态的修改方法的行为

// 字段值序列化
$field->hookValueUnserialize(function($value, AbstractField $field){
    return $value;
})/
// 字段值序列化
$field->hookValueSerialize(function($value, $model){
    return $value;
})
查看原文
QQ
微信