addField() public method

Adds a new field to the validation object
Since: 2.0
public addField ( string | Fuel\Validation\FieldInterface $field, string $label = null )
$field string | Fuel\Validation\FieldInterface
$label string Field name to use in messages, set to null to use $field
Example #1
0
 public function testValidateFieldWithEmptyString()
 {
     $this->object->addField('tel_no')->number();
     $data = array('tel_no' => '');
     $result = $this->object->run($data);
     $this->assertTrue($result->isValid());
     $data = array('tel_no' => '0');
     $result = $this->object->run($data);
     $this->assertTrue($result->isValid());
 }
Example #2
0
 public function testNestedValidatorFailure()
 {
     $validator = new Validator();
     $validator->addField('test')->maxLength(5);
     $this->object->addField('child')->validator($validator);
     $this->object->addField('foobar')->required();
     $result = $this->object->run(['foobar' => 'test', 'child' => ['test' => '1234567890']]);
     $this->assertFalse($result->isValid());
     $this->assertEquals(['foobar'], $result->getValidated());
     $this->assertEquals(['child.test' => 'The field is longer than the allowed maximum length.'], $result->getErrors());
 }
 /**
  * Creates a new comment validation
  *
  * @return Validator
  */
 protected function createCommentValidator()
 {
     $validator = new Validator();
     $validator->addField('comment', gettext('Comment'))->required();
     $validator->addField('internal', gettext('Is internal?'));
     return $validator;
 }
Example #4
0
 public function populateValidator(Validator $validator)
 {
     $validator->addField('email', 'Email')->required()->email();
     $validator->addField('name', 'Name')->minLength(1);
 }
Example #5
0
 /**
  * Processes the given field and rules to add them to the validator.
  *
  * @param string    $field Name of the field to add rules to
  * @param array     $rules Array of any rules to be added to the field
  * @param Validator $validator Validator object to apply rules to
  *
  * @since 2.0
  */
 protected function addFieldRules($field, $rules, Validator $validator)
 {
     $label = null;
     if (!empty($this->labelKey)) {
         if (array_key_exists($this->labelKey, $rules)) {
             $label = $rules[$this->labelKey];
         }
         if (array_key_exists($this->ruleKey, $rules)) {
             $rules = $rules[$this->ruleKey];
         } else {
             $rules = array();
         }
     }
     $validator->addField($field, $label);
     // Add each of the rules
     foreach ($rules as $ruleName => $params) {
         $this->addFieldRule($field, $ruleName, $params, $validator);
     }
 }
Example #6
0
$showProvince = $params->get('province', false);
$showMessage = $params->get('message', false);
$showBuySell = $params->get('buysell', false);
if ($showHeading = $params->get('heading')) {
    $heading = $params->get('heading', false);
    $subHeading = $params->get('subheading', false);
}
// Check for post data
if ($post = JRequest::getVar('query', false, 'post')) {
    // Check honeypot
    if (!empty($_POST['birthday'])) {
        return true;
    }
    // Validate
    $val = new Validator();
    $val->addField('name')->required();
    $val->addField('number')->required()->number();
    $showSuburb ? $val->addField('suburb')->required() : null;
    $showProvince ? $val->addField('province')->required() : null;
    $result = $val->run($post);
    if ($result->isValid()) {
        // Save data and check token
        if (QueryHelperDatabase::save($post)) {
            // Email data
            QueryHelperMailer::send($params, $post);
            // We done
            print '<div class="ui message"><i class="ui circular checkmark icon"></i>Sent successfully, we will be in touch.</div>';
            // Dont show the formn
            return null;
        }
        // Message
Example #7
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);
         }
     }
 }