addRule() public method

Adds a rule that can be used to validate a field
Since: 2.0
public addRule ( string | Fuel\Validation\FieldInterface $field, Fuel\Validation\RuleInterface $rule )
$field string | Fuel\Validation\FieldInterface
$rule Fuel\Validation\RuleInterface
Beispiel #1
0
 /**
  * Adds an individual rule for the given field to the given validator.
  * If the $ruleName is numeric the function will assume that $params is the rule name and that there are no
  * parameters.
  *
  * @param string     $fieldName
  * @param string|int $ruleName
  * @param mixed      $params
  * @param Validator  $validator
  *
  * @since 2.0
  */
 protected function addFieldRule($fieldName, $ruleName, $params, Validator $validator)
 {
     // If $ruleName is numeric assume that $params is the name and there are no actual parameters
     if (is_numeric($ruleName)) {
         $ruleName = $params;
         $params = [];
     }
     // Create and add the rule
     $ruleInstance = $validator->createRuleInstance($ruleName, $params);
     $validator->addRule($fieldName, $ruleInstance);
 }
Beispiel #2
0
 public function testSetMessage()
 {
     $rule = new Number();
     $this->object->addRule('test', $rule)->setMessage('injected message');
     $this->assertEquals('injected message', $rule->getMessage());
 }
Beispiel #3
0
 /**
  * Builds validation for a class
  *
  * @param string    $class
  * @param Validator $validator
  */
 public function buildValidation($class, Validator $validator)
 {
     $classMetadata = $this->metadataFactory->getMetadataForClass($class);
     foreach ($classMetadata->propertyMetadata as $propertyMetadata) {
         $validator->addField($propertyMetadata->name, $propertyMetadata->label);
         foreach ($propertyMetadata->rules as $name => $arguments) {
             if (is_int($name)) {
                 $name = $arguments;
                 $arguments = [];
             }
             $rule = $validator->createRuleInstance($name, [$arguments]);
             $validator->addRule($propertyMetadata->name, $rule);
         }
     }
 }