摘要:<?phpnamespace app\index\model;use think\Model;use think\model\concern\SoftDelete;class User extends Model{ use SoftDelete; //声明表名 protected $table = 'user';
<?php
namespace app\index\model;
use think\Model;
use think\model\concern\SoftDelete;
class User extends Model
{
use SoftDelete;
//声明表名
protected $table = 'user';
//声明主键
protected $pk = 'id';
//声明删除时间的字段名
protected $deleteTime = 'delete_time';
//设置软删除字段的默认值
protected $defaultSoftDelete = 0;
//自动完成
//模型的自动完成主要针对数据库写操作:新增和更新
//相当于给字段设置默认值
//仅针对新增
protected $insert = [
'sex' => 1,
'score' => 60,
'entry_time' => 0
];
//仅针对更新
protected $update = [
'sex' => 1
];
//针对新增和更新
protected $auto = [
'sex' => 1
];
//自动时间戳
protected $autoWirteTimestamp => true;
//设置用户自定义的新增和更新时间的字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
//获取器1:1是男 0是女
protected function getSexAttr($value){
$arr = ['女','男'];
return $arr[$value];
}
// 获取器2:传入第二个参数,引用全部字段
protected function getScoreAttr($value,$data)
{
return $data['name'].'的成绩是'.$value;
}
//获取器3:可以为表不存在的字段设置,纯粹的拼装字段内容
protected function getAssessAttr($value,$data){
//Assexx:虚拟字段
$score = $data['score'];
$result = '';
if($score < 60){
$result = '不及格';
}else if($score >60 && $score <85){
$result = '良好';
}else{
$result = '优秀';
}
return $result;
}
//修改器
protected function setEntryTimeAttr($value){
$value = strtotime($value);
return $value;
}
// 修改器2:支持第二个参数,引用全部字段值
// protected function setScoreAttr($value,$data){
// return $value+$data['id'];
// }
//类型转换
protected $type = [
'id' => 'integer',
'sex' => 'integer',
'score' => 'integer',
];
}
<?php
namespace app\index\controller;
use app\index\model\User as UserModel;
use think\Controller;
class Index extends Controller
{
//获取器一
public function index(){
$res = UserModel::get(13);
dump($res);
}
//获取器2
public function index1(){
$res = UserModel::get(13);
echo $res->score;
}
//获取器三
public function index2(){
$res = UserModel::all();
foreach($res as $item){
echo $item['score'].'评价是:'.$item['assess'].'<br />';
}
}
//修改器1
public function modify(){
$res = UserModel::get(13);
$res->entry_time = '2018-12-26';
$res->save();
}
//修改器2
public function modify1(){
$res = UserModel::get(13);
$res->score = 50;
$res->save();
}
//自动完成
public function auto(){
$data = [
'name' => '诸葛',
];
$res = UserModel::create($data);
dump($res);
}
}
<?php
namespace app\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'require',
'sex' =>'in:0,1',
'score' => 'require|egt:0|elt:100'
];
protected $message = [
'name.require' => '缺少必要参数:名字',
'sex.in' => '性别必须是男和女',
'score.require' => '成绩不能为空',
'score.egt' => '不能出现负成绩',
'score.elt' => '不能出现大于100的成绩'
];
}
<?php
namespace app\index\controller;
use think\Controller;
use app\validate\User as UserValidate;
use think\Validate;
class Verify extends Controller
{
// public function index(){
// $data = [
// 'name' => '张三',
// 'score' => 1065,
// ];
// $userV = new UserValidate();
// $res = $userV->check($data);
// if(!$res){
// dump($res);
// dump($userV -> getError());
// }else{
// dump($res);
// }
// }
//
// public function index(){
// $data = [
// 'name' => '张三',
// 'score' => 1065,
// ];
// $rule = 'app\validate\User';
// $res = $this->validate($data,$rule);
// var_dump($res);
// }
//
public function index(){
// 直接使用系统的验证器进行验证
// Validate::make()创建验证规则并返回验证对象
// $validate->check($data) 验证
$rule = [
'name' => 'require',
'sex' =>'in:0,1',
'score' => 'require|egt:0|elt:100'
];
$mess = [
'name.require' => '缺少必要参数:名字',
'sex.in' => '性别必须是男和女',
'score.require' => '成绩不能为空',
'score.egt' => '不能出现负成绩',
'score.elt' => '不能出现大于100的成绩'
];
$data = [
'name' => '张三',
'score' => 1065,
];
$validate = Validate::make($rule,$mess);
$res = $validate->check($data);
dump($res);
}
}
						批改老师:韦小宝批改时间:2018-12-26 14:56:39		
						
老师总结:写的很棒,框架中的验证可以快速的来协助我们完成功能!					
 
                 
 
 
  
            