TP5 模型修改器和自动完成

例如一个密码字段, 需要md5加密, 这时候, 可以用修改器, 来实现.

//修改器
public function setPasswordAttr($val)
{
    return md5($val);
}

这是的 set 和 Attr 是固定的, 中间的 Password 是字段名, 第一个字母大写.

如果还有第二个参数, 则是整个数据, 如下, 是这个数组的数据.

$res = User::create([
    'username' => 'imooc',
    'sex'      => 0,
    'email'    => '[email protected]',
    'password' => 'imooc',
    'num'      => 1
], true);

接下来演示一下, 接受第二个参数的情况

//修改器
public function setPasswordAttr($val, $data)
{
    return $val . $data['email'];
    //return md5($val);
}

自动完成. 有些字段, 例如时间字段, 希望我们在处理的数据的时候,可以自动完成.可以用如下方法

$auto 是在新增和更新的时候,都会触发, $insert 是在新增的时候会触发. $update是在更新的时候触发.

//自动完成
protected $auto = [
    'time'
];
// 自动完成, 只在新增的时候有效
protected $insert = [
    'time_insert'
];
// 自动完成, 只在更新的时候有效
protected $update = [
    'time_update'
];

public function setTimeAttr()
{
    return time();
}

public function setTimeInsertAttr()
{
    return time();
}

public function setTimeUpdateAttr()
{
    return time();
}
发布了88 篇原创文章 · 获赞 6 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/codipy/article/details/92831862
今日推荐