<?php /** * Created by PhpStorm. * User: 普通用户 * Date: 2019/6/23 * Time: 18:53 */ namespace app\index\controller; use think\Controller; use app\index\model\Book as BookModel; class Validate extends Controller { public function index() { $res = BookModel::get(9); dump($res); echo $res->sex.'<hr>'; echo $res->price; echo '<hr>'; // 自定义字段 echo $res->price_info; } public function modify() { $res = BookModel::get(10); $res->publish = '2019-08-08'; // $res->save(); $res->price = 800; $res->save(); echo '修改成功'; } public function auto() { BookModel::create(['name'=>'从入门到精通','price'=>'666','sex'=>1]); echo '添加成功'; } public function del() { BookModel::destroy(25); echo '删除成功'; } }
<?php /** * Created by PhpStorm. * User: 普通用户 * Date: 2019/6/18 * Time: 21:24 */ namespace app\index\model; use think\Model; use think\model\concern\SoftDelete; class Book extends Model { use SoftDelete; protected $table = 'book'; protected $pk = 'id'; protected $deleteTime='delete_time'; protected $defaultSoftDelete=0; protected $autoWriteTimestamp = true; protected $createTime = 'create_time'; protected $updateTime='update_time'; protected function getSexAttr($val) { $sex = [0=>'男',1=>'女']; return $sex[$val]; } protected function getPriceAttr($value,$data) { return '书本名:'.$data['name'].'价格为:'.$value; } protected function getPriceInfoAttr($value,$data) { return 'id:'.$data['id'].'书本名为:'.$data['name']. '作者:'.$data['author']; } protected function setPublishAttr($value) { return strtotime($value); } protected function setPriceAttr($value,$data) { // return $value+$data['id']; return $value+$data['sex']; } }
<?php /** * Created by PhpStorm. * User: 普通用户 * Date: 2019/6/23 * Time: 22:19 */ namespace app\index\validate; use think\Validate; class Book extends Validate { protected $rule=[ 'name'=>'require|min:5|max:20', 'sex'=>'in:0,1', 'author'=>'require', 'price'=>'require|between:1,1000', ]; protected $message=[ 'name.require'=>'书名不能为空', 'name.min'=>'书名不能少于5', 'name.max'=>'书名不能多于20个字符', 'sex.in'=>'作者性别只能选男或女', 'author.require'=>'作者不能为空', 'price.require'=>'价格不能为空', 'price.between'=>'书本价格必须在1-1000元之间', ]; }
<?php /** * Created by PhpStorm. * User: 普通用户 * Date: 2019/6/23 * Time: 22:22 */ namespace app\index\controller; use think\Controller; use think\Validate; use app\index\Validate\Book; class Verify extends Controller { // 验证器:直接实例化验证器 public function verify1() { $data = [ 'name'=>'mysql入门到精通', 'sex'=>0, 'author'=>'mysql中文网', 'price'=>1000 ]; $validate = new Book(); if(!$validate->check($data)){ dump($validate->getError()); }else{ return '验证通过'; } } // 使用控制器内的验证方法来完成验证 public function verify2() { $data=[ 'name'=>'js入门到精通', 'sex'=>0, 'author'=>'js中文网', 'price'=>777]; $rule='app\index\validate\Book'; // $rule=['price'=>'between:55,85']; $message=['price'=>'书本价格必须在55-85元之间']; // $data=['price'=>90]; // $res = $this->validate($data,$rule); $res = $this->validate($data,$rule,$message); if(true!==$res) { return $res; } return '验证成功2'; } // 使用Verify基类进行验证 public function verify3() { $rule = [ 'price'=>'require|between:10,1000' ]; $message=[ 'price.require'=>'书本价格不可以为空', 'price.between'=>'书本价格在10-1000元之间' ]; $data=['price'=>1001]; $validate=Validate::make($rule,$message); $res = $validate->check($data); return $res?'通过验证':$validate->getError(); } }
经过本章节的学习,对模型自动操作和数据验证有了一定的掌握,框架各种操作类的提供使得开发效率大大的提生,后续再逐渐运用才能更加的熟练