Подтверждение «требуется хотя бы один номер телефона» в CakePHP - PullRequest
1 голос
/ 15 марта 2012

Это файл модели vechile_enquiry.php

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

Это файл вида vechile.ctp

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

Требуется хотя бы один номер телефона:

<?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));
?>

В поле имени работает проверка, но я не понимаю, как выполнить проверку в mobile_phone, work_phone, home_phone при условии, что требуется хотя бы один номер телефона.

1 Ответ

1 голос
/ 15 марта 2012

Это должно сделать это для вас:

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