コード例 #1
0
 /**
  * Add 1 or more validation rules
  *
  * @example // add multiple rules at once
  *          $validator->add(array(
  *          'required',
  *          array('required', array('email', null, '{label} must be an email', 'Field B')),
  *          ));
  *          // add multiple rules using a string
  *          $validator->add('required | email');
  *          // add validator with options
  *          $validator->add('minlength', array('min' => 2), '{label} should have at least {min} characters', 'Field');
  *          // add validator with string and parameters as JSON string
  *          $validator->add('minlength({"min": 2})({label} should have at least {min} characters)(Field)');
  *          // add validator with string and parameters as query string
  *          $validator->add('minlength(min=2)({label} should have at least {min} characters)(Field)');
  * @param string|callback $name
  * @param string|array $options
  * @param string $messageTemplate
  * @param string $label
  * @return \Sirius\Validation\Validator
  */
 function add($name, $options = null, $messageTemplate = null, $label = null)
 {
     if (is_array($name) && !is_callable($name)) {
         foreach ($name as $singleRule) {
             // make sure the rule is an array (the parameters of subsequent calls);
             $singleRule = is_array($singleRule) ? $singleRule : array($singleRule);
             call_user_func_array(array($this, 'add'), $singleRule);
         }
         return $this;
     }
     if (is_string($name)) {
         // rule was supplied like 'required' or 'required | email'
         if (strpos($name, ' | ') !== false) {
             return $this->add(explode(' | ', $name));
         }
         // rule was supplied like this 'length(2,10)(error message template)(label)'
         if (strpos($name, '(') !== false) {
             list($name, $options, $messageTemplate, $label) = $this->parseRule($name);
         }
     }
     $validator = $this->ruleFactory->createValidator($name, $options, $messageTemplate, $label);
     $validator->setErrorMessagePrototype($this->errorMessagePrototype);
     $this->rules->attach($validator);
     return $this;
 }
コード例 #2
0
ファイル: ValueValidator.php プロジェクト: shsrain/ypyzApi
 /**
  * @param AbstractValidator $validationRule
  *
  * @return ValueValidator
  */
 public function addRule(AbstractRule $validationRule)
 {
     $validationRule->setErrorMessagePrototype($this->errorMessagePrototype);
     $this->rules->attach($validationRule);
     return $this;
 }