abstract:通过本章的学习,了解了模型中,获取器和修改器的创建和使用,设置日期格式自动转时间戳功能,新增时间和修改时间的默认字段绑定(可实现添加时间的自动更新和修改时间的自动更改),字段的类型转换,添加和删除时的字段自动完成功能。同时还学习了验证器,通过新增验证器类,可以实现对表单的数据进行验证和提醒。代码如下:app\model\User:<?php namespace app\model
通过本章的学习,了解了模型中,获取器和修改器的创建和使用,设置日期格式自动转时间戳功能,新增时间和修改时间的默认字段绑定(可实现添加时间的自动更新和修改时间的自动更改),字段的类型转换,添加和删除时的字段自动完成功能。同时还学习了验证器,通过新增验证器类,可以实现对表单的数据进行验证和提醒。代码如下:
app\model\User:
<?php namespace app\model; use think\Model; use think\model\concern\SoftDelete; class User extends Model { //引用软删除的trait方法集 use SoftDelete; //表名 protected $table='user'; //主键 protected $pk='uid'; //设置删除时间字段,供软删除使用 protected $deleteTime='delete_time'; //设置软删除默认值 protected $defaultSoftDelete=0; //region 获取器 //获取性别 protected function getSexAttr($value,$data) { $sex=[0=>'男',1=>'女']; return '我叫:'.$data['name'].',我是'.$sex[$value].'生'; } //获取自定义属性 protected function getMsgAttr($value,$data) { return '本女'.$data['name'].',胸围'.$data['weight']; } //#endregion //region 修改器 //自动转换日期格式成时间戳 protected function setAddTimeAttr($value) { return strtotime($value); } //胸围更改时自动加1 protected function setWeightAttr($value,$data) { return $value+1; } //endregion //开启当前模型的自动时间戳功能 protected $autoWriteTimestamp = true; //设置支持自动时间戳功能的字段名 protected $createTime = 'create_time'; protected $updateTime = 'modify_time'; //类型转换 protected $type=[ 'sex'=>'integer', 'weight'=>'integer', 'height'=>'integer', ]; //自动完成 protected $insert=['sex'=>1]; protected $update=['sex'=>0]; protected $auto=['height'=>'160']; }
app\validate\User:
<?php namespace app\validate; use think\Validate; class User extends Validate { //验证规则 protected $rule=[ 'name'=>'require|min:6|max:15', 'sex'=>'in:0,1', 'height'=>'between:145,190' ]; //验证提示信息 protected $message=[ 'name.require'=>'女星名字不可为空', 'name.min'=>'女星名字长度最小为6个字符', 'name.max'=>'女星名字长度最大为15个字符', 'sex.in'=>'性别必须为男或女', 'height.between'=>'身高必须在145-190cm之间' ]; }
app\index\controller\UserAttr.php:
<?php namespace app\index\controller; use app\model\User; use think\Controller; use app\validate\User as UserValidate; class UserAttr extends Controller { public function getAttr() { //获取用户信息 $user=User::get(23); echo $user->sex; echo '<br>'; echo $user->msg; //保存用户信息 $user->weight=95; $user->save(); //验证用户信息 $data= [ 'name'=>'cang111', 'height'=>'140', 'sex'=>0 ]; $validate= new UserValidate(); $validate->check($data); if(true !== $validate) { dump($validate->getError()); } else { return '验证成功'; } } }
效果图:
Correcting teacher:韦小宝Correction time:2019-02-25 17:31:03
Teacher's summary:写的很不错 这些方法都可以帮助我们更快的去完成项目