摘要:通过本章的学习,了解了模型中,获取器和修改器的创建和使用,设置日期格式自动转时间戳功能,新增时间和修改时间的默认字段绑定(可实现添加时间的自动更新和修改时间的自动更改),字段的类型转换,添加和删除时的字段自动完成功能。同时还学习了验证器,通过新增验证器类,可以实现对表单的数据进行验证和提醒。代码如下: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 '验证成功';
}
}
}效果图:

批改老师:韦小宝批改时间:2019-02-25 17:31:03
老师总结:写的很不错 这些方法都可以帮助我们更快的去完成项目