返回完成模型对应的......登陆

完成模型对应的表中字段进行验证处理(

҈果҈果҈果҈ ҈ ҈2019-06-23 23:08:38135
<?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'];
    }
}

2019-06-23_221646.jpg

<?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();
    }
}


2019-06-23_230503.jpg


经过本章节的学习,对模型自动操作和数据验证有了一定的掌握,框架各种操作类的提供使得开发效率大大的提生,后续再逐渐运用才能更加的熟练




最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送
  • PHP中文网