摘要:通過本章的學(xué)習(xí),了解了模型中,獲取器和修改器的創(chuàng)建和使用,設(shè)置日期格式自動(dòng)轉(zhuǎn)時(shí)間戳功能,新增時(shí)間和修改時(shí)間的默認(rèn)字段綁定(可實(shí)現(xiàn)添加時(shí)間的自動(dòng)更新和修改時(shí)間的自動(dòng)更改),字段的類型轉(zhuǎn)換,添加和刪除時(shí)的字段自動(dòng)完成功能。同時(shí)還學(xué)習(xí)了驗(yàn)證器,通過新增驗(yàn)證器類,可以實(shí)現(xiàn)對(duì)表單的數(shù)據(jù)進(jìn)行驗(yàn)證和提醒。代碼如下:app\model\User:<?php namespace app\model
通過本章的學(xué)習(xí),了解了模型中,獲取器和修改器的創(chuàng)建和使用,設(shè)置日期格式自動(dòng)轉(zhuǎn)時(shí)間戳功能,新增時(shí)間和修改時(shí)間的默認(rèn)字段綁定(可實(shí)現(xiàn)添加時(shí)間的自動(dòng)更新和修改時(shí)間的自動(dòng)更改),字段的類型轉(zhuǎn)換,添加和刪除時(shí)的字段自動(dòng)完成功能。同時(shí)還學(xué)習(xí)了驗(yàn)證器,通過新增驗(yàn)證器類,可以實(shí)現(xiàn)對(duì)表單的數(shù)據(jù)進(jìn)行驗(yàn)證和提醒。代碼如下:
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'; //設(shè)置刪除時(shí)間字段,供軟刪除使用 protected $deleteTime='delete_time'; //設(shè)置軟刪除默認(rèn)值 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 修改器 //自動(dòng)轉(zhuǎn)換日期格式成時(shí)間戳 protected function setAddTimeAttr($value) { return strtotime($value); } //胸圍更改時(shí)自動(dòng)加1 protected function setWeightAttr($value,$data) { return $value+1; } //endregion //開啟當(dāng)前模型的自動(dòng)時(shí)間戳功能 protected $autoWriteTimestamp = true; //設(shè)置支持自動(dòng)時(shí)間戳功能的字段名 protected $createTime = 'create_time'; protected $updateTime = 'modify_time'; //類型轉(zhuǎn)換 protected $type=[ 'sex'=>'integer', 'weight'=>'integer', 'height'=>'integer', ]; //自動(dòng)完成 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 { //驗(yàn)證規(guī)則 protected $rule=[ 'name'=>'require|min:6|max:15', 'sex'=>'in:0,1', 'height'=>'between:145,190' ]; //驗(yàn)證提示信息 protected $message=[ 'name.require'=>'女星名字不可為空', 'name.min'=>'女星名字長度最小為6個(gè)字符', 'name.max'=>'女星名字長度最大為15個(gè)字符', '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(); //驗(yàn)證用戶信息 $data= [ 'name'=>'cang111', 'height'=>'140', 'sex'=>0 ]; $validate= new UserValidate(); $validate->check($data); if(true !== $validate) { dump($validate->getError()); } else { return '驗(yàn)證成功'; } } }
效果圖:
批改老師:韋小寶批改時(shí)間:2019-02-25 17:31:03
老師總結(jié):寫的很不錯(cuò) 這些方法都可以幫助我們更快的去完成項(xiàng)目