摘要:总结:1.模型获取器。设置模型获取器方法(方法名必须为:get + 数据表字段名(首字母大写,若数据表字段包括下划线,去掉下划线,下划线后单次首字母也得大写) + Attr)模型获取器有三种用法:第二种方法额外$data数据,可以获取当前字段所有数据。第三种方法可以设置一个虚拟字段,为表不存在的字段设置纯粹的拼装的字段内容。2.模型修改器。设置模型修改器(设置模型获取器方法(方法名必须为:set
总结:
1.模型获取器。
设置模型获取器方法(方法名必须为:get + 数据表字段名(首字母大写,若数据表字段包括下划线,去掉下划线,下划线后单次首字母也得大写) + Attr)
模型获取器有三种用法:第二种方法额外$data数据,可以获取当前字段所有数据。第三种方法可以设置一个虚拟字段,为表不存在的字段设置纯粹的拼装的字段内容。

2.模型修改器。
设置模型修改器(设置模型获取器方法(方法名必须为:set + 数据表字段名(首字母大写,若数据表字段包括下划线,去掉下划线,下划线后单次首字母也得大写) + Attr))
模型获取器有两种用法:第二种方法额外$data数据,可以获取当前字段所有数据。
3.模型类型转换和自动完成
在数据表中,字段值类型共有三种类型,字符类型,数值类型,时间类型,默认为字符类型,类型转换可以将字符类型转换为其他类型(默认为字符类型)。自动完成,针对写操作和新增,更新操作相对于设置字段的默认值),$inset对应新增操作,$update对应更新操作,$auto则新增和更新操作都会触发。

4.模型自动时间戳功能
模型自动时间戳功能可以在数据的写,更新操作时自动完成时间戳的写入。可以在全局设置config中的database.php中开启时间戳,也可以在模型中自定义设置,先需数据表中设置对应字段,如‘create_time’'update_time'。

5.验证器技术。
验证器可以对用户传递的数据进行自定义规则的数据验证,可以通过自定义创建验证类(继承think中的Validate类)进行自定义规则和错误信息的设置。(验证器模式),并可以调用validate方法进行简化方法,也可以通过调用验证类,进行独立验证。


验证器代码=======================================
<?php
namespace app\index\controller;
use think\Controller;
use app\validate\Point;
use think\Validate;
class Verify extends Controller
{
//验证器
public function demo(Point $validate){//依赖注入
//模拟数据
$data=[
'biketype'=>1,
'bikeid'=>23,
'userid'=>22
];
if(!$validate->check($data)){
dump($validate->getError());
}
else{
return '验证成功';
}
}
//验证器的简化 $this->validate($data,$rule,$message)利用controller类封装的方法
public function demo1(){
//模拟数据
$data=[
'biketype'=>3,
'bikeid'=>23,
'userid'=>22
];
//验证规则
$rule = 'app\validate\Point';
$res =$this->validate($data,$rule);
if (true !== $res) {
return $res;
}
else{
return '验证成功';
}
}
//独立验证,调用验证类
public function demo2(){
//Validate::make()创建验证规则并返回验证对象
//$validate->check($data)进行验证
//模拟数据
$data=[
'biketype'=>2,
'bikeid'=>23,
'userid'=>22
];
//验证规则
$rule=[
'bikeid' => 'require|length:1,11',
'userid' => 'require|length:1,11',
'biketype' =>'require|in:1,2'
];
//错误信息
$mess=[
'bikeid.require'=>'单车ID不能为空',
'userid.require'=>'用户ID不能为空',
'biketype.require'=>'单车类型不能为空',
'biketype.in'=>'单车类型只能为1或2'
];
//Validate::make()创建验证规则并返回验证对象
$validate=Validate::make($rule,$mess);
$res=$validate->check($data);
if ($res) {
return '验证成功';
}
else{
return $validate->getError();
}
}
}
?>
批改老师:天蓬老师批改时间:2018-11-04 20:33:37
老师总结:你的版本是5.1吗?如果是,验证类应该是Facade引入
还有,设置器必须要有$auto或者$insert/$update属性配对使用,属性中没必要设置默认值了,因为你有设置器方法啦
不过,整体来说,