Validacija obrazca v Phalcon

Mogoče kdo ve, kako bi pri validaciji obrazca za posamezni tag izpisal le eno opozorilo in ne vseh, v kolikor se pojavi napaka. Torej na primer za email polje definiram, da ne sme biti prazno, ter da je email pravilnega zapisa.

Če bi uporabil Forms, bi zapisal nekaj takšnega...

class RegisterForm extends Form {
  $email = new Text('email');
  $email->addValidators(array(
     new PresenceOf(array(
         'message' => 'Vpiši email'
      )),
     new Email(array(
          'message' => 'Email ni pravilnega zapisa'
      ))
      ));
  $this->add($email);
}

Če validator, pa tole...

class RegisterValidation extends Validation {
  $this->add ( 'email', new PresenceOf ( [
    'message' => 'Vpiši email'
  ] ) );

  $this->add ( 'email', new Email ( [
   'message' => 'Email ni pravilnega zapisa'
  ] ) );
}

Pri validaciji pa mi v primeru, da pustim email polje prazno, seveda izpiše oba opozorila, kar se mi zdi odveč. Naj izpiše samo eno, na primer najprej prvo. Torej, da "Vpiši email", če je email vpisan, a nepravilnega zapisa, pa naj potem izpiše še drugo opozorilo. Ve kdo, kako bi to izvedel? Sem googlal ampak brez uspeha... Phalcon žal nima tako velike skuponosti kot kakšen Laravel :(

4 odgovori

Cancelling validation

'cancelOnFail' => true,
1

S tem žal ustavim celotno validacijo, kar pa ne želim. Torej, če imam polje uporabniško ime, email in geslo ter imam pri email zapisano 'cancelOnFail' => true, se validacija za geslo ne bo izvedla (če recimo polje email pustim prazno).

Mi je uspelo rešiti na bolj quick&dirty način. Če koga zanima, lahko objavim mojo rešitev.

Sej za tvoj primer greš pač na naslednjo opcijo v docsih, allowEmpty in ti pač, če je empty vrže presenceof, če pa ni pa format.