天天看点

用python处理购物篮数据_购物篮分析与运用-Python数据科学技术详解与商业项目实战精讲 - Python学习网...

购物篮分析与运用购物篮分析与运用

属性定义

属性定义方式仅限于验证器,通常类似于下面的方式:<?php

namespace app\validate;

use think\Validate;

class User extends Validate

{

protected $rule = [

'name'  => 'require|max:25',

'age'   => 'number|between:1,120',

'email' => 'email',

];

}

系统内置了一些常用的验证规则可以满足大部分的验证需求,具体每个规则的含义参考内置规则一节。

因为一个字段可以使用多个验证规则(如上面的age字段定义了number和between两个验证规则),在一些特殊的情况下,为了避免混淆可以在rule属性中使用数组定义规则。<?php

namespace app\validate;

use think\Validate;

class User extends Validate

{

protected $rule = [

'name'  => ['require', 'max' => 25, 'regex' => '/^[\w|\d]\w+/'],

'age'   => ['number', 'between' => '1,120'],

'email' => 'email',

];

}

方法定义

如果使用的是独立验证(即手动调用验证类进行验证)方式的话,通常使用rule方法进行验证规则的设置,举例说明如下。独立验证通常使用Facade或者自己实例化验证类。$validate = \think\facade\Validate::rule('age', 'number|between:1,120')

->rule([

'name'  => 'require|max:25',

'email' => 'email'

]);

$data = [

'name'  => 'thinkphp',

'email' => '[email protected]'

];

if (!$validate->check($data)) {

dump($validate->getError());

}

rule方法传入数组表示批量设置规则。

rule方法还可以支持使用对象化的规则定义。

我们把上面的验证代码改为use think\facade\Validate;

use think\validate\ValidateRule as Rule;

$validate = Validate::rule('age', Rule::isNumber()->between([1,120]))

->rule([

'name'  => Rule::isRequire()->max(25),

'email' => Rule::isEmail(),

]);

$data = [

'name'  => 'thinkphp',

'email' => '[email protected]'

];

if (!$validate->check($data)) {

dump($validate->getError());

}

可以对某个字段使用闭包验证,例如:$validate = Validate::rule([

'name'  => function($value) {

return 'thinkphp' == strtolower($value) ? true : false;

},

]);

闭包支持传入两个参数,第一个参数是当前字段的值(必须),第二个参数是所有数据(可选)。

如果使用了闭包进行验证,则不再支持对该字段使用多个验证规则。

闭包函数如果返回true则表示验证通过,返回false表示验证失败并使用系统的错误信息,如果返回字符串,则表示验证失败并且以返回值作为错误提示信息。$validate = Validate::rule([

'name'  => function($value) {

return 'thinkphp' == strtolower($value) ? true : '用户名错误';

},

]);

属性方式定义验证规则不支持使用对象化规则定义和闭包定义

任务

?不会了怎么办