跳转到内容

Phalcon 过滤器

注意

所有类都以前缀命名Phalcon

过滤器\Exception

GitHub上的源码

  • 命名空间

    • Phalcon\Filter
  • 使用

  • 继承

    \Exception

  • 实现

Phalcon\过滤器抛出的异常将使用此类

Exceptions thrown in Phalcon\Filter will use this class

过滤器\过滤器

GitHub上的源码

  • 命名空间

    • Phalcon\Filter
  • 使用

  • 继承

  • 实现

    • FilterInterface

惰性加载、存储并暴露清理对象

常量

const FILTER_ABSINT = absint;
const FILTER_ALNUM = alnum;
const FILTER_ALPHA = alpha;
const FILTER_BOOL = bool;
const FILTER_EMAIL = email;
const FILTER_FLOAT = float;
const FILTER_INT = int;
const FILTER_LOWER = lower;
const FILTER_LOWERFIRST = lowerfirst;
const FILTER_REGEX = regex;
const FILTER_REMOVE = remove;
const FILTER_REPLACE = replace;
const FILTER_SPECIAL = special;
const FILTER_SPECIALFULL = specialfull;
const FILTER_STRING = string;
const FILTER_STRING_LEGACY = stringlegacy;
const FILTER_STRIPTAGS = striptags;
const FILTER_TRIM = trim;
const FILTER_UPPER = upper;
const FILTER_UPPERFIRST = upperfirst;
const FILTER_UPPERWORDS = upperwords;
const FILTER_URL = url;

属性

/**
 * @var array
 */
protected $mapper;

/**
 * @var array
 */
protected $services;

方法

public function __call( string $name, array $args );
魔术调用使得辅助对象可以作为方法使用。

public function __construct( array $mapper = [] );
过滤器构造函数。

public function get( string $name ): mixed;
获取一个服务。如果它不在映射数组中,则创建一个新对象,设置它然后返回它。

public function has( string $name ): bool;
检查映射数组中是否存在某个服务

public function sanitize( mixed $value, mixed $sanitizers, bool $noRecursive = bool ): mixed;
使用指定的单个或一组清理器来清理值

public function set( string $name, mixed $service ): void;
设置一个新的服务到映射数组

protected function init( array $mapper ): void;
在内部映射数组中加载对象

过滤器\过滤器工厂

GitHub上的源码

  • 命名空间

    • Phalcon\Filter
  • 使用

    • Phalcon\Filter\Filter
  • 继承

  • 实现

过滤器工厂类

@package Phalcon\Filter

方法

public function newInstance(): FilterInterface;
返回一个定位器对象,其中所有助手都定义在匿名函数中

protected function getServices(): array;
返回可用的适配器

过滤器\过滤器接口Interface

GitHub上的源码

  • 命名空间

    • Phalcon\Filter
  • 使用

  • 继承

  • 实现

惰性加载、存储并暴露清理对象

方法

public function sanitize( mixed $value, mixed $sanitizers, bool $noRecursive = bool ): mixed;
使用指定的单个或一组清理器来清理值

过滤器\清理\绝对整数

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\绝对整数

将值清理为绝对整数

方法

public function __invoke( mixed $input );

过滤器\清理\字母数字

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\字母数字

将值清理为字母数字值

方法

public function __invoke( mixed $input );

过滤器\清理\字母

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\字母

将值清理为字母值

方法

public function __invoke( mixed $input );

过滤器\清理\布尔值

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\布尔值

将值清理为布尔值

方法

public function __invoke( mixed $input );

过滤器\清理\电子邮件

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\电子邮件

清理电子邮件字符串

方法

public function __invoke( mixed $input );

过滤器\清理\浮点数

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\浮点数

将值清理为浮点数

方法

public function __invoke( mixed $input );

过滤器\清理\整数

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\整数

将值清理为整数

方法

public function __invoke( mixed $input );

过滤器\清理\小写

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\小写

将值清理为小写字母

方法

public function __invoke( string $input );

过滤器\清理\首字母小写

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\首字母小写

将值清理为首字母小写

方法

public function __invoke( string $input );

过滤器\清理\正则表达式

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\正则表达式

执行preg_replace对值进行清理

方法

public function __invoke( mixed $input, mixed $pattern, mixed $replace );

过滤器\清理\移除

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\移除

移除字符串的部分内容以清理值

方法

public function __invoke( mixed $input, mixed $replace );

过滤器\清理\替换

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\替换

替换字符串的部分内容以清理值

方法

public function __invoke( mixed $input, mixed $from, mixed $to );

过滤器\清理\特殊字符

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\特殊字符

对值进行特殊字符清理

方法

public function __invoke( mixed $input );

过滤器\清理\完整特殊字符

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\完整特殊字符

对值进行特殊字符清理(htmlspecialchars() 和 ENT_QUOTES)

方法

public function __invoke( mixed $input );

过滤器\清理\字符串值

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

将值清理为字符串

方法

public function __invoke( string $input, int $flags = int ): string;

过滤器\清理\遗留字符串值

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

使用以下方法将值清理为字符串:filter_var()。该过滤器提供了与v5之前的版本的向后兼容性。对于PHP高于或等于8.1的情况,该过滤器将保持字符串不变。如果传递的不是字符串类型,该方法将返回false

方法

public function __invoke( mixed $input );

过滤器\清理\去除标签

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\去除标签

使用striptags清理值

方法

public function __invoke( string $input );

过滤器\清理\修剪

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\修剪

清理值,去除前后空格

方法

public function __invoke( string $input );

过滤器\清理\大写

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\大写

将值清理为大写字母

方法

public function __invoke( string $input );

过滤器\清理\首字母大写

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\首字母大写

将值清理为首字母大写

方法

public function __invoke( string $input );

过滤器\清理\单词首字母大写

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\单词首字母大写

将每个单词的首字母清理为大写

方法

public function __invoke( string $input );

过滤器\清理\网址

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Sanitize
  • 使用

  • 继承

  • 实现

Phalcon\过滤器\清理\网址

对值 url 进行清理。

方法

public function __invoke( mixed $input );

过滤/验证

GitHub上的源码

  • 命名空间

    • Phalcon\Filter
  • 使用

    • Phalcon\Di\Di
    • Phalcon\Di\DiInterface
    • Phalcon\Di\Injectable
    • Phalcon\Filter\FilterInterface
    • Phalcon\Filter\Validation\AbstractCombinedFieldsValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Filter\Validation\ValidationInterface
    • Phalcon\Filter\Validation\ValidatorInterface
    • Phalcon\Messages\MessageInterface
    • Phalcon\Messages\Messages
  • 继承

    Injectable

  • 实现

    • ValidationInterface

允许使用自定义或内置的验证器来验证数据

属性

/**
 * @var array
 */
protected $combinedFieldsValidators;

/**
 * @var mixed
 */
protected $data;

/**
 * @var object|null
 */
protected $entity;

/**
 * @var array
 */
protected $filters;

/**
 * @var array
 */
protected $labels;

/**
 * @var Messages|null
 */
protected $messages;

/**
 * List of validators
 *
 * @var array
 */
protected $validators;

/**
 * Calculated values
 *
 * @var array
 */
protected $values;

方法

public function __construct( array $validators = [] );
Phalcon\Filter\Validation 构造函数

public function add( mixed $field, ValidatorInterface $validator ): ValidationInterface;
为字段添加一个验证器

public function appendMessage( MessageInterface $message ): ValidationInterface;
将消息追加到消息列表中

public function bind( mixed $entity, mixed $data ): ValidationInterface;
将数据分配给一个实体。该实体用于获取验证值。

public function getData(): mixed;

public function getEntity(): mixed;
返回绑定的实体

public function getFilters( string $field = null ): mixed | null;
返回所有过滤器或指定的一个过滤器

public function getLabel( mixed $field ): string;
获取字段的标签。

public function getMessages(): Messages;
返回已注册的验证器

public function getValidators(): array;
返回添加到验证中的验证器

public function getValue( string $field ): mixed | null;
从数组/对象数据源中获取要验证的值。

public function getValueByData( mixed $data, string $field ): mixed | null;
从数组/对象数据源中获取要验证的值。

public function getValueByEntity( mixed $entity, string $field ): mixed | null;
从对象实体源中获取要验证的值。

public function rule( mixed $field, ValidatorInterface $validator ): ValidationInterface;
的别名add方法可以实现反向操作。

public function rules( mixed $field, array $validators ): ValidationInterface;
为字段添加验证器

public function setEntity( mixed $entity ): void;
设置绑定的实体

public function setFilters( mixed $field, mixed $filters ): ValidationInterface;
向字段添加过滤器。

public function setLabels( array $labels ): void;
为字段添加标签

public function setValidators( array $validators ): Validation;

public function validate( mixed $data = null, mixed $entity = null ): Messages | bool;
根据一组规则验证一组数据

protected function preChecking( mixed $field, ValidatorInterface $validator ): bool;
内部验证,如果返回 true,则跳过当前验证器。

Filter\Validation\AbstractCombinedFieldsValidatorAbstract

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

  • 继承

    AbstractValidator

  • 实现

这是组合字段验证器的基类

Filter\Validation\AbstractValidatorAbstract

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Messages\Message
    • Phalcon\Support\Helper\Arr\Whitelist
  • 继承

  • 实现

    • ValidatorInterface

这是验证器的基类。

属性

/**
 * Message template
 *
 * @var string|null
 */
protected $template;

/**
 * Message templates
 *
 * @var array
 */
protected $templates;

/**
 * @var array
 */
protected $options;

方法

public function __construct( array $options = [] );
Phalcon\Filter\Validation\Validator 构造函数

public function getOption( string $key, mixed $defaultValue = null ): mixed;
返回验证器选项中的一个选项,如果该选项未设置则返回 null

public function getTemplate( string $field = null ): string;
获取模板消息

public function getTemplates(): array;
获取模板集合对象。

public function hasOption( string $key ): bool;
检查是否定义了一个选项

public function messageFactory( Validation $validation, mixed $field, array $replacements = [] ): Message;
通过工厂创建默认消息。

public function setOption( string $key, mixed $value ): void;
在验证器中设置一个选项。

public function setTemplate( string $template ): ValidatorInterface;
设置一个新的模板消息

public function setTemplates( array $templates ): ValidatorInterface;
清除当前模板并从数组中设置新模板。

abstract public function validate( Validation $validation, mixed $field ): bool;
执行验证

protected function allowEmpty( mixed $field, mixed $value ): bool;
检查字段是否可以为空。

protected function checkArray( mixed $value, string $field ): mixed;
检查一个值是否为数组,并根据传递的字段名返回元素。

protected function prepareCode( string $field ): int;
准备一个验证代码。

protected function prepareLabel( Validation $validation, string $field ): mixed;
准备字段的标签。

Filter\Validation\AbstractValidatorCompositeAbstract

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

    • Phalcon\Filter\Validation
  • 继承

    AbstractValidator

  • 实现

    • ValidatorCompositeInterface

这是组合字段验证器的基类

属性

/**
 * @var array
 */
protected $validators;

方法

public function getValidators(): array;

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Exception

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

  • 继承

    \Exception

  • 实现

Phalcon\Filter\Validation* 类中抛出的异常将使用此类。

Filter\Validation\ValidationInterfaceInterface

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

    • Phalcon\Di\Injectable
    • Phalcon\Messages\MessageInterface
    • Phalcon\Messages\Messages
  • 继承

  • 实现

Phalcon\Filter\Validation 组件的接口。

方法

public function add( mixed $field, ValidatorInterface $validator ): ValidationInterface;
为字段添加一个验证器

public function appendMessage( MessageInterface $message ): ValidationInterface;
将消息追加到消息列表中

public function bind( mixed $entity, mixed $data ): ValidationInterface;
将数据分配给一个实体。该实体用于获取验证值。

public function getEntity(): mixed;
返回绑定的实体

public function getFilters( string $field = null ): mixed | null;
返回所有过滤器或指定的一个过滤器

public function getLabel( string $field ): string;
获取字段的标签。

public function getMessages(): Messages;
返回已注册的验证器

public function getValidators(): array;
返回添加到验证中的验证器

public function getValue( string $field ): mixed | null;
从数组/对象数据源中获取要验证的值。

public function rule( mixed $field, ValidatorInterface $validator ): ValidationInterface;
的别名add方法可以实现反向操作。

public function rules( string $field, array $validators ): ValidationInterface;
为字段添加验证器

public function setFilters( string $field, mixed $filters ): ValidationInterface;
向字段添加过滤器。

public function setLabels( array $labels ): void;
为字段添加标签

public function validate( mixed $data = null, mixed $entity = null ): Messages | bool;
根据一组规则验证一组数据

Filter\Validation\Validator\Alnum

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
  • 继承

    AbstractValidator

  • 实现

检查是否为字母数字字符

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Alnum as AlnumValidator;

$validator = new Validation();

$validator->add(
    "username",
    new AlnumValidator(
        [
            "message" => ":field must contain only alphanumeric characters",
        ]
    )
);

$validator->add(
    [
        "username",
        "name",
    ],
    new AlnumValidator(
        [
            "message" => [
                "username" => "username must contain only alphanumeric characters",
                "name"     => "name must contain only alphanumeric characters",
            ],
        ]
    )
);

属性

//
protected $template = Field :field must contain only letters and numbers;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Alpha

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查是否为字母字符

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Alpha as AlphaValidator;

$validator = new Validation();

$validator->add(
    "username",
    new AlphaValidator(
        [
            "message" => ":field must contain only letters",
        ]
    )
);

$validator->add(
    [
        "username",
        "name",
    ],
    new AlphaValidator(
        [
            "message" => [
                "username" => "username must contain only letters",
                "name"     => "name must contain only letters",
            ],
        ]
    )
);

属性

//
protected $template = Field :field must contain only letters;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Between

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

验证一个值是否在两个值的包含范围内。对于值 x,测试通过条件是 minimum<=x<=maximum。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Between;

$validator = new Validation();

$validator->add(
    "price",
    new Between(
        [
            "minimum" => 0,
            "maximum" => 100,
            "message" => "The price must be between 0 and 100",
        ]
    )
);

$validator->add(
    [
        "price",
        "amount",
    ],
    new Between(
        [
            "minimum" => [
                "price"  => 0,
                "amount" => 0,
            ],
            "maximum" => [
                "price"  => 100,
                "amount" => 50,
            ],
            "message" => [
                "price"  => "The price must be between 0 and 100",
                "amount" => "The amount must be between 0 and 50",
            ],
        ]
    )
);

属性

//
protected $template = Field :field must be within the range of :min to :max;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Callback

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\ValidatorInterface
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

调用用户函数进行验证。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Callback as CallbackValidator;
use Phalcon\Filter\Validation\Validator\Numericality as NumericalityValidator;

$validator = new Validation();

$validator->add(
    ["user", "admin"],
    new CallbackValidator(
        [
            "message" => "There must be only an user or admin set",
            "callback" => function($data) {
                if (!empty($data->getUser()) && !empty($data->getAdmin())) {
                    return false;
                }

                return true;
            }
        ]
    )
);

$validator->add(
    "amount",
    new CallbackValidator(
        [
            "callback" => function($data) {
                if (!empty($data->getProduct())) {
                    return new NumericalityValidator(
                        [
                            "message" => "Amount must be a number."
                        ]
                    );
                }
            }
        ]
    )
);

属性

//
protected $template = Field :field must match the callback function;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Confirmation

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查两个值是否相同

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Confirmation;

$validator = new Validation();

$validator->add(
    "password",
    new Confirmation(
        [
            "message" => "Password doesn't match confirmation",
            "with"    => "confirmPassword",
        ]
    )
);

$validator->add(
    [
        "password",
        "email",
    ],
    new Confirmation(
        [
            "message" => [
                "password" => "Password doesn't match confirmation",
                "email"    => "Email doesn't match confirmation",
            ],
            "with" => [
                "password" => "confirmPassword",
                "email"    => "confirmEmail",
            ],
        ]
    )
);

属性

//
protected $template = Field :field must be the same as :with;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

final protected function compare( string $a, string $b ): bool;
比较字符串。

Filter\Validation\Validator\CreditCard

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否具有有效的信用卡号码

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\CreditCard as CreditCardValidator;

$validator = new Validation();

$validator->add(
    "creditCard",
    new CreditCardValidator(
        [
            "message" => "The credit card number is not valid",
        ]
    )
);

$validator->add(
    [
        "creditCard",
        "secondCreditCard",
    ],
    new CreditCardValidator(
        [
            "message" => [
                "creditCard"       => "The credit card number is not valid",
                "secondCreditCard" => "The second credit card number is not valid",
            ],
        ]
    )
);

属性

//
protected $template = Field :field is not valid for a credit card number;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Date

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • DateTime
    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否为有效日期

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Date as DateValidator;

$validator = new Validation();

$validator->add(
    "date",
    new DateValidator(
        [
            "format"  => "d-m-Y",
            "message" => "The date is invalid",
        ]
    )
);

$validator->add(
    [
        "date",
        "anotherDate",
    ],
    new DateValidator(
        [
            "format" => [
                "date"        => "d-m-Y",
                "anotherDate" => "Y-m-d",
            ],
            "message" => [
                "date"        => "The date is invalid",
                "anotherDate" => "The another date is invalid",
            ],
        ]
    )
);

属性

//
protected $template = Field :field is not a valid date;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Digit

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查是否为数字字符

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Digit as DigitValidator;

$validator = new Validation();

$validator->add(
    "height",
    new DigitValidator(
        [
            "message" => ":field must be numeric",
        ]
    )
);

$validator->add(
    [
        "height",
        "width",
    ],
    new DigitValidator(
        [
            "message" => [
                "height" => "height must be numeric",
                "width"  => "width must be numeric",
            ],
        ]
    )
);

属性

//
protected $template = Field :field must be numeric;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Email

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否具有正确的电子邮件格式。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Email as EmailValidator;

$validator = new Validation();

$validator->add(
    "email",
    new EmailValidator(
        [
            "message" => "The e-mail is not valid",
        ]
    )
);

$validator->add(
    [
        "email",
        "anotherEmail",
    ],
    new EmailValidator(
        [
            "message" => [
                "email"        => "The e-mail is not valid",
                "anotherEmail" => "The another e-mail is not valid",
            ],
        ]
    )
);

$validator->add(
    "täst@example.com",
    new EmailValidator(
        [
            "message" => "The e-mail is not valid",
            "allowUTF8" => true,
        ]
    )
);

属性

//
protected $template = Field :field must be an email address;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Exception

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

  • 继承

    \Exception

  • 实现

Phalcon\Filter\Validation\Validator* 类中抛出的异常将使用此类。

Filter\Validation\Validator\ExclusionIn

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否不在值列表中。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\ExclusionIn;

$validator = new Validation();

$validator->add(
    "status",
    new ExclusionIn(
        [
            "message" => "The status must not be A or B",
            "domain"  => [
                "A",
                "B",
            ],
        ]
    )
);

$validator->add(
    [
        "status",
        "type",
    ],
    new ExclusionIn(
        [
            "message" => [
                "status" => "The status must not be A or B",
                "type"   => "The type must not be 1 or "
            ],
            "domain" => [
                "status" => [
                    "A",
                    "B",
                ],
                "type"   => [1, 2],
            ],
        ]
    )
);

属性

//
protected $template = Field :field must not be a part of list: :domain;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\File

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidatorComposite
    • Phalcon\Filter\Validation\Validator\File\MimeType
    • Phalcon\Filter\Validation\Validator\File\Resolution\Equal
    • Phalcon\Filter\Validation\Validator\File\Resolution\Max
    • Phalcon\Filter\Validation\Validator\File\Resolution\Min
    • Phalcon\Filter\Validation\Validator\File\Size\Equal
    • Phalcon\Filter\Validation\Validator\File\Size\Max
    • Phalcon\Filter\Validation\Validator\File\Size\Min
    • Phalcon\Messages\Message
    • Phalcon\Support\Helper\Arr\Get
  • 继承

    AbstractValidatorComposite

  • 实现

检查一个值是否具有正确的文件

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File as FileValidator;

$validator = new Validation();

$validator->add(
    "file",
    new FileValidator(
        [
            "maxSize"              => "2M",
            "messageSize"          => ":field exceeds the max file size (:size)",
            "allowedTypes"         => [
                "image/jpeg",
                "image/png",
            ],
            "messageType"          => "Allowed file types are :types",
            "maxResolution"        => "800x600",
            "messageMaxResolution" => "Max resolution of :field is :resolution",
            "messageFileEmpty"     => "File is empty",
            "messageIniSize"       => "Ini size is not valid",
            "messageValid"         => "File is not valid",
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new FileValidator(
        [
            "maxSize" => [
                "file"        => "2M",
                "anotherFile" => "4M",
            ],
            "messageSize" => [
                "file"        => "file exceeds the max file size 2M",
                "anotherFile" => "anotherFile exceeds the max file size 4M",
            "allowedTypes" => [
                "file"        => [
                    "image/jpeg",
                    "image/png",
                ],
                "anotherFile" => [
                    "image/gif",
                    "image/bmp",
                ],
            ],
            "messageType" => [
                "file"        => "Allowed file types are image/jpeg and image/png",
                "anotherFile" => "Allowed file types are image/gif and image/bmp",
            ],
            "maxResolution" => [
                "file"        => "800x600",
                "anotherFile" => "1024x768",
            ],
            "messageMaxResolution" => [
                "file"        => "Max resolution of file is 800x600",
                "anotherFile" => "Max resolution of file is 1024x768",
            ],
        ]
    )
);

方法

public function __construct( array $options = [] );
构造函数

Filter\Validation\Validator\File\AbstractFileAbstract

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否具有正确的文件

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Size;

$validator = new Validation();

$validator->add(
    "file",
    new Size(
        [
            "maxSize"              => "2M",
            "messageSize"          => ":field exceeds the max file size (:size)",
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new FileValidator(
        [
            "maxSize" => [
                "file"        => "2M",
                "anotherFile" => "4M",
            ],
            "messageSize" => [
                "file"        => "file exceeds the max file size 2M",
                "anotherFile" => "anotherFile exceeds the max file size 4M",
            ],
        ]
    )
);

属性

/**
 * Empty is empty
 *
 * @var string
 */
protected $messageFileEmpty = Field :field must not be empty;

/**
 * File exceeds the file size set in PHP configuration
 *
 * @var string
 */
protected $messageIniSize = File :field exceeds the maximum file size;

/**
 * File is not valid
 *
 * @var string
 */
protected $messageValid = Field :field is not valid;

方法

public function checkUpload( Validation $validation, string $field ): bool;
检查上传。

public function checkUploadIsEmpty( Validation $validation, string $field ): bool;
检查上传是否为空。

public function checkUploadIsValid( Validation $validation, string $field ): bool;
检查上传是否有效。

public function checkUploadMaxSize( Validation $validation, string $field ): bool;
检查上传文件是否大于 PHP 允许的大小。

public function getFileSizeInBytes( string $size ): double;
将类似 "2.5MB" 的字符串转换为字节。

public function getMessageFileEmpty(): string;
空即是空。

public function getMessageIniSize(): string;
文件超过 PHP 配置中设置的文件大小限制。

public function getMessageValid(): string;
文件无效。

public function isAllowEmpty( Validation $validation, string $field ): bool;
空检查。

public function setMessageFileEmpty( string $message ): void;
空即是空。

public function setMessageIniSize( string $message ): void;
文件超过 PHP 配置中设置的文件大小限制。

public function setMessageValid( string $message ): void;
文件无效。

protected function checkIsUploadedFile( string $name ): bool;
检查文件是否已上传;这是一个内部检查,可在子类中重写,如果你不想检查上传的文件。

Filter\Validation\Validator\File\MimeType

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
  • 继承

    AbstractFile

  • 实现

检查一个值是否具有正确的文件 MIME 类型

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\MimeType;

$validator = new Validation();

$validator->add(
    "file",
    new MimeType(
        [
            "types" => [
                "image/jpeg",
                "image/png",
            ],
            "message" => "Allowed file types are :types"
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new MimeType(
        [
            "types" => [
                "file"        => [
                    "image/jpeg",
                    "image/png",
                ],
                "anotherFile" => [
                    "image/gif",
                    "image/bmp",
                ],
            ],
            "message" => [
                "file"        => "Allowed file types are image/jpeg and image/png",
                "anotherFile" => "Allowed file types are image/gif and image/bmp",
            ]
        ]
    )
);

属性

//
protected $template = File :field must be of type: :types;

方法

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\File\Resolution\Equal

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File\Resolution
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\Validator\File\AbstractFile
    • Phalcon\Messages\Message
  • 继承

    AbstractFile

  • 实现

检查文件是否有正确的分辨率。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Resolution\Equal;

$validator = new Validation();

$validator->add(
    "file",
    new Equal(
        [
            "resolution" => "800x600",
            "message"    => "The resolution of the field :field has to be equal :resolution",
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new Equal(
        [
            "resolution" => [
                "file"        => "800x600",
                "anotherFile" => "1024x768",
            ],
            "message" => [
                "file"        => "Equal resolution of file has to be 800x600",
                "anotherFile" => "Equal resolution of file has to be 1024x768",
            ],
        ]
    )
);

属性

//
protected $template = The resolution of the field :field has to be equal :resolution;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\File\Resolution\Max

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File\Resolution
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\Validator\File\AbstractFile
    • Phalcon\Messages\Message
  • 继承

    AbstractFile

  • 实现

检查文件是否有正确的分辨率。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Resolution\Max;

$validator = new Validation();

$validator->add(
    "file",
    new Max(
        [
            "resolution"      => "800x600",
            "message"  => "Max resolution of :field is :resolution",
            "included" => true,
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new Max(
        [
            "resolution" => [
                "file"        => "800x600",
                "anotherFile" => "1024x768",
            ],
            "included" => [
                "file"        => false,
                "anotherFile" => true,
            ],
            "message" => [
                "file"        => "Max resolution of file is 800x600",
                "anotherFile" => "Max resolution of file is 1024x768",
            ],
        ]
    )
);

属性

//
protected $template = File :field exceeds the maximum resolution of :resolution;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\File\Resolution\Min

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File\Resolution
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\Validator\File\AbstractFile
    • Phalcon\Messages\Message
  • 继承

    AbstractFile

  • 实现

检查文件是否有正确的分辨率。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Resolution\Min;

$validator = new Validation();

$validator->add(
    "file",
    new Min(
        [
            "resolution" => "800x600",
            "message"    => "Min resolution of :field is :resolution",
            "included"   => true,
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new Min(
        [
            "resolution" => [
                "file"        => "800x600",
                "anotherFile" => "1024x768",
            ],
            "included" => [
                "file"        => false,
                "anotherFile" => true,
            ],
            "message" => [
                "file"        => "Min resolution of file is 800x600",
                "anotherFile" => "Min resolution of file is 1024x768",
            ],
        ]
    )
);

属性

//
protected $template = File :field can not have the minimum resolution of :resolution;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\File\Size\Equal

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File\Size
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\Validator\File\AbstractFile
  • 继承

    AbstractFile

  • 实现

检查一个值是否具有正确的文件

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Size;

$validator = new Validation();

$validator->add(
    "file",
    new Equal(
        [
            "size"     => "2M",
            "included" => true,
            "message"  => ":field exceeds the equal file size (:size)",
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new Equal(
        [
            "size" => [
                "file"        => "2M",
                "anotherFile" => "4M",
            ],
            "included" => [
                "file"        => false,
                "anotherFile" => true,
            ],
            "message" => [
                "file"        => "file does not have the right file size",
                "anotherFile" => "anotherFile wrong file size (4MB)",
            ],
        ]
    )
);

属性

/**
 * @var string|null
 */
protected $template = File :field does not have the exact :size file size;

方法

public function validate( Validation $validation, mixed $field ): bool;
执行验证

protected function getConditional( double $source, double $target, bool $included = bool );
执行条件判断。

Filter\Validation\Validator\File\Size\Max

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File\Size
  • 使用

  • 继承

    Equal

  • 实现

检查一个值是否具有正确的文件

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Size;

$validator = new Validation();

$validator->add(
    "file",
    new Max(
        [
            "size"     => "2M",
            "included" => true,
            "message"  => ":field exceeds the max file size (:size)",
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new Max(
        [
            "size" => [
                "file"        => "2M",
                "anotherFile" => "4M",
            ],
            "included" => [
                "file"        => false,
                "anotherFile" => true,
            ],
            "message" => [
                "file"        => "file exceeds the max file size 2M",
                "anotherFile" => "anotherFile exceeds the max file size 4M",
            ],
        ]
    )
);

属性

/**
 * @var string|null
 */
protected $template = File :field exceeds the size of :size;

方法

protected function getConditional( double $source, double $target, bool $included = bool );
执行条件判断。

Filter\Validation\Validator\File\Size\Min

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\File\Size
  • 使用

  • 继承

    Equal

  • 实现

检查一个值是否具有正确的文件

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\File\Size;

$validator = new Validation();

$validator->add(
    "file",
    new Min(
        [
            "size"     => "2M",
            "included" => true,
            "message"  => ":field exceeds the min file size (:size)",
        ]
    )
);

$validator->add(
    [
        "file",
        "anotherFile",
    ],
    new Min(
        [
            "size" => [
                "file"        => "2M",
                "anotherFile" => "4M",
            ],
            "included" => [
                "file"        => false,
                "anotherFile" => true,
            ],
            "message" => [
                "file"        => "file exceeds the min file size 2M",
                "anotherFile" => "anotherFile exceeds the min file size 4M",
            ],
        ]
    )
);

属性

/**
 * @var string|null
 */
protected $template = File :field can not have the minimum size of :size;

方法

protected function getConditional( double $source, double $target, bool $included = bool );
执行条件判断。

Filter\Validation\Validator\Identical

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否与其他值相同

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Identical;

$validator = new Validation();

$validator->add(
    "terms",
    new Identical(
        [
            "accepted" => "yes",
            "message" => "Terms and conditions must be accepted",
        ]
    )
);

$validator->add(
    [
        "terms",
        "anotherTerms",
    ],
    new Identical(
        [
            "accepted" => [
                "terms"        => "yes",
                "anotherTerms" => "yes",
            ],
            "message" => [
                "terms"        => "Terms and conditions must be accepted",
                "anotherTerms" => "Another terms  must be accepted",
            ],
        ]
    )
);

属性

//
protected $template = Field :field does not have the expected value;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\InclusionIn

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否在值列表中。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\InclusionIn;

$validator = new Validation();

$validator->add(
    "status",
    new InclusionIn(
        [
            "message" => "The status must be A or B",
            "domain"  => ["A", "B"],
        ]
    )
);

$validator->add(
    [
        "status",
        "type",
    ],
    new InclusionIn(
        [
            "message" => [
                "status" => "The status must be A or B",
                "type"   => "The status must be 1 or 2",
            ],
            "domain" => [
                "status" => ["A", "B"],
                "type"   => [1, 2],
            ]
        ]
    )
);

属性

//
protected $template = Field :field must be a part of list: :domain;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Ip

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查 IP 地址

use Phalcon\Filter\Validation\Validator\Ip as IpValidator;

$validator->add(
    "ip_address",
    new IpValidator(
        [
            "message"       => ":field must contain only ip addresses",
            "version"       => IP::VERSION_4 | IP::VERSION_6, // v6 and v4. The same if not specified
            "allowReserved" => false,   // False if not specified. Ignored for v6
            "allowPrivate"  => false,   // False if not specified
            "allowEmpty"    => false,
        ]
    )
);

$validator->add(
    [
        "source_address",
        "destination_address",
    ],
    new IpValidator(
        [
            "message" => [
                "source_address"      => "source_address must be a valid IP address",
                "destination_address" => "destination_address must be a valid IP address",
            ],
            "version" => [
                 "source_address"      => Ip::VERSION_4 | IP::VERSION_6,
                 "destination_address" => Ip::VERSION_4,
            ],
            "allowReserved" => [
                 "source_address"      => false,
                 "destination_address" => true,
            ],
            "allowPrivate" => [
                 "source_address"      => false,
                 "destination_address" => true,
            ],
            "allowEmpty" => [
                 "source_address"      => false,
                 "destination_address" => true,
            ],
        ]
    )
);

常量

const VERSION_4 = FILTER_FLAG_IPV4;
const VERSION_6 = FILTER_FLAG_IPV6;

属性

//
protected $template = Field :field must be a valid IP address;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Numericality

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查有效的数值

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Numericality;

$validator = new Validation();

$validator->add(
    "price",
    new Numericality(
        [
            "message" => ":field is not numeric",
        ]
    )
);

$validator->add(
    [
        "price",
        "amount",
    ],
    new Numericality(
        [
            "message" => [
                "price"  => "price is not numeric",
                "amount" => "amount is not numeric",
            ]
        ]
    )
);

属性

//
protected $template = Field :field does not have a valid numeric format;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\PresenceOf

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

验证一个值不是 null 或空字符串。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\PresenceOf;

$validator = new Validation();

$validator->add(
    "name",
    new PresenceOf(
        [
            "message" => "The name is required",
        ]
    )
);

$validator->add(
    [
        "name",
        "email",
    ],
    new PresenceOf(
        [
            "message" => [
                "name"  => "The name is required",
                "email" => "The email is required",
            ],
        ]
    )
);

属性

//
protected $template = Field :field is required;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Regex

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

允许验证字段值是否匹配正则表达式。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Regex as RegexValidator;

$validator = new Validation();

$validator->add(
    "created_at",
    new RegexValidator(
        [
            "pattern" => "/^[0-9]{4}[-\/](0[1-9]|1[12])[-\/](0[1-9]|[12][0-9]|3[01])$/",
            "message" => "The creation date is invalid",
        ]
    )
);

$validator->add(
    [
        "created_at",
        "name",
    ],
    new RegexValidator(
        [
            "pattern" => [
                "created_at" => "/^[0-9]{4}[-\/](0[1-9]|1[12])[-\/](0[1-9]|[12][0-9]|3[01])$/",
                "name"       => "/^[a-z]$/",
            ],
            "message" => [
                "created_at" => "The creation date is invalid",
                "name"       => "The name is invalid",
            ]
        ]
    )
);

属性

//
protected $template = Field :field does not match the required format;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\StringLength

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\AbstractValidatorComposite
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Filter\Validation\Validator\StringLength\Max
    • Phalcon\Filter\Validation\Validator\StringLength\Min
    • Phalcon\Messages\Message
  • 继承

    AbstractValidatorComposite

  • 实现

验证字符串满足指定的最大和最小长度约束。当字符串长度 L 满足 min<=L<=max 时测试通过,即 L 至少为 min,最多为 max。从 Phalcon v4.0 开始,此验证器的工作方式类似于容器。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\StringLength as StringLength;

$validator = new Validation();

$validation->add(
    "name_last",
    new StringLength(
        [
            "max"             => 50,
            "min"             => 2,
            "messageMaximum"  => "We don't like really long names",
            "messageMinimum"  => "We want more than just their initials",
            "includedMaximum" => true,
            "includedMinimum" => false,
        ]
    )
);

$validation->add(
    [
        "name_last",
        "name_first",
    ],
    new StringLength(
        [
            "max" => [
                "name_last"  => 50,
                "name_first" => 40,
            ],
            "min" => [
                "name_last"  => 2,
                "name_first" => 4,
            ],
            "messageMaximum" => [
                "name_last"  => "We don't like really long last names",
                "name_first" => "We don't like really long first names",
            ],
            "messageMinimum" => [
                "name_last"  => "We don't like too short last names",
                "name_first" => "We don't like too short first names",
            ],
            "includedMaximum" => [
                "name_last"  => false,
                "name_first" => true,
            ],
            "includedMinimum" => [
                "name_last"  => false,
                "name_first" => true,
            ]
        ]
    )
);

方法

public function __construct( array $options = [] );
构造函数

Filter\Validation\Validator\StringLength\Max

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\StringLength
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

验证字符串满足指定的最大长度约束。当字符串长度 L 满足 L<=max 时测试通过,即 L 最多为 max。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\StringLength\Max;

$validator = new Validation();

$validation->add(
    "name_last",
    new Max(
        [
            "max"      => 50,
            "message"  => "We don't like really long names",
            "included" => true
        ]
    )
);

$validation->add(
    [
        "name_last",
        "name_first",
    ],
    new Max(
        [
            "max" => [
                "name_last"  => 50,
                "name_first" => 40,
            ],
            "message" => [
                "name_last"  => "We don't like really long last names",
                "name_first" => "We don't like really long first names",
            ],
            "included" => [
                "name_last"  => false,
                "name_first" => true,
            ]
        ]
    )
);

属性

//
protected $template = Field :field must not exceed :max characters long;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\StringLength\Min

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator\StringLength
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

验证字符串满足指定的最小长度约束。当字符串长度 L 满足 min<=L 时测试通过,即 L 至少为 min。

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\StringLength\Min;

$validator = new Validation();

$validation->add(
    "name_last",
    new Min(
        [
            "min"     => 2,
            "message" => "We want more than just their initials",
            "included" => true
        ]
    )
);

$validation->add(
    [
        "name_last",
        "name_first",
    ],
    new Min(
        [
            "min" => [
                "name_last"  => 2,
                "name_first" => 4,
            ],
            "message" => [
                "name_last"  => "We don't like too short last names",
                "name_first" => "We don't like too short first names",
            ],
            "included" => [
                "name_last"  => false,
                "name_first" => true,
            ]
        ]
    )
);

属性

//
protected $template = Field :field must be at least :min characters long;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\Validator\Uniqueness

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractCombinedFieldsValidator
    • Phalcon\Filter\Validation\Exception
    • Phalcon\Messages\Message
    • Phalcon\Mvc\Model
    • Phalcon\Mvc\ModelInterface
  • 继承

    AbstractCombinedFieldsValidator

  • 实现

检查字段在相关表中是否唯一

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Uniqueness as UniquenessValidator;

$validator = new Validation();

$validator->add(
    "username",
    new UniquenessValidator(
        [
            "model"   => new Users(),
            "message" => ":field must be unique",
        ]
    )
);

与字段不同的属性:

$validator->add(
    "username",
    new UniquenessValidator(
        [
            "model"     => new Users(),
            "attribute" => "nick",
        ]
    )
);

在模型中:

$validator->add(
    "username",
    new UniquenessValidator()
);

模型中的字段组合:

$validator->add(
    [
        "firstName",
        "lastName",
    ],
    new UniquenessValidator()
);

可以在验证之前转换值。这在需要将值转换以执行数据库查找的情况下很有用:

$validator->add(
    "username",
    new UniquenessValidator(
        [
            "convert" => function (array $values) {
                $values["username"] = strtolower($values["username"]);

                return $values;
            }
        ]
    )
);

属性

//
protected $template = Field :field must be unique;

/**
 * @var array|null
 */
private $columnMap;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

protected function getColumnNameReal( mixed $record, string $field ): string;
列映射用于获取真实列名的情况

protected function isUniqueness( Validation $validation, mixed $field ): bool;

protected function isUniquenessModel( mixed $record, array $field, array $values );
用于模型的唯一性方法

Filter\Validation\Validator\Url

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation\Validator
  • 使用

    • Phalcon\Filter\Validation
    • Phalcon\Filter\Validation\AbstractValidator
    • Phalcon\Messages\Message
  • 继承

    AbstractValidator

  • 实现

检查一个值是否具有 URL 格式

use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Url as UrlValidator;

$validator = new Validation();

$validator->add(
    "url",
    new UrlValidator(
        [
            "message" => ":field must be a url",
        ]
    )
);

$validator->add(
    [
        "url",
        "homepage",
    ],
    new UrlValidator(
        [
            "message" => [
                "url"      => "url must be a url",
                "homepage" => "homepage must be a url",
            ]
        ]
    )
);

属性

//
protected $template = Field :field must be a url;

方法

public function __construct( array $options = [] );
构造函数

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\ValidatorCompositeInterfaceInterface

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

    • Phalcon\Filter\Validation
  • 继承

  • 实现

这是组合字段验证器的基类

方法

public function getValidators(): array;
执行验证

public function validate( Validation $validation, mixed $field ): bool;
执行验证

Filter\Validation\ValidatorFactory

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

    • Phalcon\Factory\AbstractFactory
  • 继承

    AbstractFactory

  • 实现

该文件是Phalcon框架的一部分。

(c) Phalcon团队team@phalcon.io

有关完整的版权和许可信息,请查看随此源代码分发的LICENSE.txt文件。

方法

public function __construct( array $services = [] );
TagFactory构造函数。

public function newInstance( string $name ): ValidatorInterface;
创建一个新实例

protected function getExceptionClass(): string;

protected function getServices(): array;
返回可用的适配器

Filter\Validation\ValidatorInterfaceInterface

GitHub上的源码

  • 命名空间

    • Phalcon\Filter\Validation
  • 使用

    • Phalcon\Filter\Validation
  • 继承

  • 实现

Phalcon\Filter\Validation\AbstractValidator 的接口

方法

public function getOption( string $key, mixed $defaultValue = null ): mixed;
返回验证器选项中的一个选项,如果该选项未设置则返回 null

public function getTemplate( string $field ): string;
获取模板消息

public function getTemplates(): array;
获取消息模板

public function hasOption( string $key ): bool;
检查是否定义了一个选项

public function setTemplate( string $template ): ValidatorInterface;
设置一个新的模板消息

public function setTemplates( array $templates ): ValidatorInterface;
清除当前模板并从数组设置新模板

public function validate( Validation $validation, mixed $field ): bool;
执行验证

无噪 Logo
无噪文档
25 年 6 月翻译
版本号 5.9
文档源↗