как проверить номер телефона пользователя в CakePhp - PullRequest
0 голосов
/ 17 января 2012

Я создал форму регистрации пользователя в CakePHP. Я имею в виду, что если пользователь предоставит номер телефона, он должен быть числовым и уникальным. Итак, я определил следующие правила:

 'phone_no_should_be_numeric'=>array(
                                      'rule' => 'numeric',
                   'message'=>'Phone number should be numeric'
                                ),
'Phone_no_should_be_unique'=>array(
                              'rule' => 'isUnique',
                  'message'=>'Phone number already exist'
            ),

Но из-за этого правила он заставляет пользователя вводить номер телефона. Который я не хочу. Я имею в виду, что если пользователь предоставит номер телефона, он должен быть уникальным и числовым. Может кто-нибудь предложить мне, как лучше всего решить эту проблему.

Спасибо заранее, джо

Ответы [ 4 ]

3 голосов
/ 17 января 2012

Do 'allowEmpty' => true :

'phone_no_should_be_numeric'=>array(
'rule' => 'numeric',
'allowEmpty' => true, //validate only if not empty
'message'=>'Phone number should be numeric')

См .: Проверка

2 голосов
/ 17 января 2012

Настройка 'allowEmpty'=>true не позволит им вводить данные.

Другой замечательный вариант - встроенная проверка телефона (если вы являетесь жителями США). Это позволяет им вводить телефонный номер разными способами, включая (xxx) xxx-xxxx и многое другое.

Если ваши пользователи не являются резидентами США (или из разных стран), лучшим решением, чем «числовой», было бы предоставление регулярного выражения для проверки телефонных номеров ( подробности здесь ):

Пример регулярного выражения для номера телефона: здесь (наряду с множеством других распространенных примеров регулярных выражений).

В целом, ваши пользователи будут благодарны вам за то, что вы позволили им вводить свои номера телефонов любым удобным для них способом вместо просто большого количества номеров.

1 голос
/ 15 мая 2013

Пользовательская проверка модели для телефона США

Разрешенный формат США: 123-123-1234, (123) 123 1234, 123.132.1234, 1234567891

Поле вводазовут " phone_num "

'phone_num' => array(
        'rule' => array('isValidUSPhoneFormat')
    ),


 /*isValidUSPhoneFormat() - Custom method to validate US Phone Number
 * @params Int $phone
 */
 function isValidUSPhoneFormat($phone){
 $phone_no=$phone['phone_num'];
 $errors = array();
    if(empty($phone_no)) {
        $errors [] = "Please enter Phone Number";
    }
    else if (!preg_match('/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s.]{0,1}[0-9]{3}[-\s.]{0,1}[0-9]{4}$/', $phone_no)) {
        $errors [] = "Please enter valid Phone Number";
    } 

    if (!empty($errors))
    return implode("\n", $errors);

    return true;
}
0 голосов
/ 23 июня 2015

ЗА +71234567891

           'phone' => array(
                'rule' => array('phone', '/\+7\d{10}/', 'all'),
                'message' => '+79001234567'
            ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...