<?php
use Phalcon\Mvc\Model\Validator,
Phalcon\Mvc\Model\ValidatorInterface;
class MaxMinValidator extends Validator implements ValidatorInterface
{
public function validate($model)
{
$field = $this->getOption('field');
$min = $this->getOption('min');
$max = $this->getOption('max');
$value = $model->$field;
if ($min <= $value && $value <= $max) {
$this->appendMessage(
"The field doesn't have the right range of values",
$field,
"MaxMinValidator"
);
return false;
}
return true;
}
}
谢谢!
答案 0 :(得分:0)
看起来你看起来并不像docs。下面注入共享服务(它将在第一个请求时创建,并在以下所有请求中重用)。
//Using an anonymous function, the instance will be lazy loaded
$di->setShared("minMaxValidator", function() {
return new MaxMinValidator();
});
另外请记住,尽管你可以注入DI
任何东西,但这并不意味着你应该这样做。像验证器这样的较小的东西通常是模型/形式特定的,即它们很少根据定义是全局服务。为了防止DI
过度膨胀,您可以将它们“注入”特定模型或表单,作为可通过正确的可见性访问的静态属性。更重要的是,除非你实例化它们中的gadzillions,否则注入与实例化不会对整体性能产生重大影响。