/** * 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); }
public function testSetMessage() { $rule = new Number(); $this->object->addRule('test', $rule)->setMessage('injected message'); $this->assertEquals('injected message', $rule->getMessage()); }
/** * 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); } } }