2012-03-15 5 views
1

에서 "적어도 하나 개의 전화 번호가 필요하다"이것은이 vechile.ctp유효성 검사가 CakePHP의

<?php 
    echo $this->Form->input('name', array('label'=>false)); 
?> 

하나 이상의 전화 번호가 필요합니다보기 파일 모델 파일 vechile_enquiry.php

<?php 
    class VechileEnquiry extends AppModel{ 
     var $name ='VechileEnquiry'; 
     var $validate = array('name' => array 
              ('rule' => 'notEmpty', 
              'message' => 'Please type name') 
          ); 
    } 
?> 

입니다 :

<?php 
    echo $this->Form->input('mobile_phone', array('label'=>false)); 
    echo $this->Form->input('work_phone', array('label'=>false)); 
    echo $this->Form->input('home_phone', array('label'=>false)); 
?> 

유효성 검사가 이름 입력란에서 작동하지만 gett가 아닙니다. 적어도 하나의 전화 번호가 필요하다는 조건에 대해 mobile_phone, work_phone, home_phone에 유효성 검사를 구현하는 방법.

+0

[이 답변] (http://stackoverflow.com/questions/1372996/at-least-one-field-must-be-filled-cakephp- 유효성 검사)에는 정확히 필요한 것이 있습니다. – Ross

답변

1

이 당신을 위해 그것을 수행해야합니다

var $validate = array(
    'name' => array(
     'rule' => 'notEmpty', 
     'message' => 'Please type name' 
    ), 
    'mobile_phone' => array(
     'check_phone' => array(
      'rule' => array('hasPhone'), 
      'required' => false, 
      'allowEmpty' => true, 
      'message' => 'At least one phone number is required.' 
     ) 
    ), 
    'work_phone' => array(
     'check_phone' => array(
      'rule' => array('hasPhone'), 
      'required' => false, 
      'allowEmpty' => true, 
      'message' => 'At least one phone number is required.' 
     ) 
    ), 
    'home_phone' => array(
     'check_phone' => array(
      'rule' => array('hasPhone'), 
      'required' => false, 
      'allowEmpty' => true, 
      'message' => 'At least one phone number is required.' 
     ) 
    ) 
); 


function hasPhone($field){ 
    if(!empty($this->data[$this->name]['mobile_phone']) || !empty($this->data[$this->name]['work_phone']) || !empty($this->data[$this->name]['home_phone'])){ 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

답장을 보내 주셔서 감사합니다 Mr William Golden, mobile_phone을 채우신 후 –

+0

메시지를 남겼습니다. 다른 두 개의 메시지 (work_phone, home_phone)를 보내고 있습니다. 다른 하나의 메시지를 표시하지 않고 채우십시오.) ...... thanks –

+3

@William_Golden''required '=> true'와''allowEmpty'=> false' 매개 변수를 취하지 않으면 문제가 발생할 수 있으므로 각 필드에 대한'hasPhone' 규칙으로 충분합니다. – ianmjones

관련 문제