예제 #1
0
파일: File.php 프로젝트: siriusphp/input
 /**
  * Attaches the upload handlers to the input object
  *
  * @param InputFilter $inputFilter
  */
 protected function prepareUploadHandlers(InputFilter $inputFilter)
 {
     $uploadValidator = new \Sirius\Validation\ValueValidator($inputFilter->getValidator()->getRuleFactory(), $inputFilter->getValidator()->getErroMessagePrototype(), $this->getLabel());
     // create the upload handler
     $uploadHandler = new Handler($this->getUploadContainer(), $this->getUploadOptions(), $uploadValidator);
     if (is_array($this->getUploadRules())) {
         foreach ($this->getUploadRules() as $rule) {
             if (!is_array($rule)) {
                 $rule = array($rule);
             }
             $name = $rule[0];
             $options = isset($rule[1]) ? $rule[1] : null;
             $message = isset($rule[2]) ? $rule[2] : null;
             $label = $this->getLabel();
             $uploadHandler->addRule($name, $options, $message, $label);
         }
     }
     $inputFilter->setUploadHandler($inputFilter->getUploadPrefix() . $this->getName(), $uploadHandler);
 }
예제 #2
0
 /**
  * Adds the element's validation rules to the validator object
  *
  * @param InputFilter $input
  *
  * @throws \InvalidArgumentException
  */
 protected function prepareValidator(InputFilter $input)
 {
     $validationRules = $this->getValidationRules();
     if (!$validationRules || !is_array($validationRules)) {
         return;
     }
     $validator = $input->getValidator();
     foreach ($validationRules as $rule) {
         $params = (array) $rule;
         if (isset($params[0])) {
             $validator->add($this->getName(), $params[0], @$params[1], @$params[2], $this->getLabel());
         }
     }
 }