2016-06-29 15 views
0

Я с использованием базы Phalcon, у меня есть коллекция модель, в validate() функции этой модели, я проверить свои поля, как показано ниже:Phalcon Validate поле зависит от другого полех

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; 
    } 

} 

Как может я тела к этой модели из этих двух полей являются обязательными? , например, если tel не пуст, адрес электронной почты может быть пустым или если адрес электронной почты не пуст, tel может быть пустым, а когда оба поля пустые, проверка должна быть неудачной.

ответ

0

Что-то вроде этого?

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

спасибо, но мой средний не так – Ali

0

Вы должны быть способны добавить сообщение. 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; 
} 
Смежные вопросы