亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

完成模型對應的表中字段進行驗證處理(

asal 2019-06-23 23:08:38 283
abstrak:<?php /**  * Created by PhpStorm.  * User: 普通用戶  * Date: 2019/6/23  * Time: 18:53  */ namespace app\index\controller; use
<?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中文網(wǎng)',
            'price'=>1000
        ];

        $validate = new Book();

        if(!$validate->check($data)){
            dump($validate->getError());
        }else{
            return '驗證通過';
        }

    }

//    使用控制器內的驗證方法來完成驗證
    public function verify2()
    {
        $data=[
            'name'=>'js入門到精通',
            'sex'=>0,
            'author'=>'js中文網(wǎng)',
            '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


經(jīng)過本章節(jié)的學習,對模型自動操作和數(shù)據(jù)驗證有了一定的掌握,框架各種操作類的提供使得開發(fā)效率大大的提生,后續(xù)再逐漸運用才能更加的熟練




Guru membetulkan:天蓬老師Masa pembetulan:2019-06-24 10:13:50
Rumusan guru:驗證的方式很多, 具體采用哪一種并不重要, 重要的是, 一旦確定下來就要堅持 , 不要一會用驗證器, 一會獨立 驗證, 一會用控制器方法驗證, 就不好了

Nota Keluaran

Penyertaan Popular