2016-06-29 10 views
0

I Phalcon Framework, ich eine Sammlung Modell haben, in validate() Funktion dieses Modells, ich meine Felder zu validieren unten wie:Phalcon Validate Feld auf einem anderen Feldern hängt

class Users extends Collection 
{ 


    public function validation() 
    { 

     $this->validate(
      new EmailValidator(
       array(
        "field" => "email", 
        "message" => "email is not valid" 
       ) 
      ) 
     ); 

     $this->validate(
      new NumericalityValidator(
       array(
        "field" => "phone", 
        "message" => "phone is not valid" 
       ) 
      ) 
     ); 


     return $this->validationHasFailed() != true; 
    } 

} 

Wie kann ich tel zu diesem Modell ein von diesen beiden Feldern sind obligatorisch? Wenn beispielsweise tel nicht leer ist, kann die E-Mail leer sein, oder wenn die E-Mail nicht leer ist, kann tel leer sein, und wenn beide Felder leer sind, sollte die Validierung fehlschlagen.

Antwort

0

So ähnlich?

public function validation() 
{ 
    if(empty($this->phone)) { 
     $this->validate(
      new EmailValidator(
       array(
        "field" => "email", 
        "message" => "email is not valid" 
       ) 
      ) 
     ); 
    } 

    if(empty($this->email)) { 
     $this->validate(
      new NumericalityValidator(
       array(
        "field" => "phone", 
        "message" => "phone is not valid" 
       ) 
      ) 
     ); 
    } 


    return $this->validationHasFailed() != true; 
} 
+0

danke, aber mein Mittel ist es nicht – Ali

0

Sie sollten eine Nachricht anhängen können. https://docs.phalconphp.com/en/latest/api/Phalcon_Mvc_Model_Message.html

<?php 

use Phalcon\Mvc\Model\Message as Message; 

public function validation() 
{ 
    if(empty($this->phone) && empty($this->email)) { 
     $message = new Message('Phone or email must be provided', 
           array('phone','email'), 
           'PresenceOf'); 
    $this->appendMessage($message); 
    return $this->validationHasFailed() != true; 
} 
Verwandte Themen