Exemplo n.º 1
0
 public function validationDefault(Validator $validator)
 {
     $data = null;
     // Contain our first $context validator
     $validator->requirePresence('label')->notEmpty('label', __("Ce champs est obligatoire"), function ($context) use(&$data) {
         $data = $context;
         // Update the $data with current $context
         return true;
     })->requirePresence('type_id')->notEmpty('type_id', __("Ce champs est obligatoire"));
     // @ TODO : TYPE_ID => 1, doit être unique (seulement une homepage par site !)
     $translationValidator = new Validator();
     $translationValidator->requirePresence('title')->notEmpty('title', __("Ce champs est obligatoire"))->requirePresence('slug')->notEmpty('slug', __("Ce champs est obligatoire"));
     $validator->addNestedMany('translations', $translationValidator);
     return $validator;
 }
Exemplo n.º 2
0
 /**
  * Tests that the 'create' and 'update' modes are preserved when using
  * nested validators
  *
  * @return void
  */
 public function testNestedManyValidatorCreate()
 {
     $validator = new Validator();
     $inner = new Validator();
     $inner->add('username', 'email', ['rule' => 'email', 'on' => 'create']);
     $validator->addNestedMany('user', $inner);
     $this->assertNotEmpty($validator->errors(['user' => [['username' => 'example']]], true));
     $this->assertEmpty($validator->errors(['user' => [['username' => 'a']]], false));
 }
Exemplo n.º 3
0
 /**
  * Test nested fields with many, but invalid data.
  *
  * @return void
  */
 public function testErrorsWithNestedManySomeInvalid()
 {
     $validator = new Validator();
     $comments = new Validator();
     $comments->add('comment', 'letter', ['rule' => 'alphanumeric']);
     $validator->addNestedMany('comments', $comments);
     $data = ['comments' => ['a string', ['comment' => 'letters'], ['comment' => 'more invalid']]];
     $errors = $validator->errors($data);
     $expected = ['comments' => ['_nested' => 'The provided value is invalid']];
     $this->assertEquals($expected, $errors);
 }