2015-02-01 4 views
0

Мне нужно проверить поле в моей форме, это поле принадлежит к персональному идентификационному номеру моей страны, это число 10 цифрКак проверить личный идентификационный номер в CakePHP

Пример: карта = 1710034065

2 1 2 1 2 1 2 1 2 (коэффициент) 1 7 1 0 0 3 4 0 6 (персональный идентификационный номер) 2 7 2 0 0 3 8 0 12 = 25 (Умножьте каждую цифру личного номера на 3 коэффициент, если результат> 10 добавить между цифрами).

добавить умножениям

результата суммы

25/10 = 2, остаток 5, делит 10 - остаток 5 = 5 (контрольные цифры) **, которая равна последний номер идентификационного номера * *


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

function check_cedula(form) 
{ 
    var cedula = form.cedula.value; 
    array = cedula.split(""); 
    num = array.length; 
    if (num == 10) 
    { 
    total = 0; 
    digito = (array[9]*1); 
    for(i=0; i < (num-1); i++) 
    { 
     mult = 0; 
     if ((i%2) != 0) { 
     total = total + (array[i] * 1); 
     } 
     else 
     { 
     mult = array[i] * 2; 
     if (mult > 9) 
      total = total + (mult - 9); 
     else 
      total = total + mult; 
     } 
    } 
    decena = total/10; 
    decena = Math.floor(decena); 
    decena = (decena + 1) * 10; 
    final = (decena - total); 
    if ((final == 10 && digito == 0) || (final == digito)) { 
     alert("La c\xe9dula ES v\xe1lida!!!"); 
     return true; 
    } 
    else 
    { 
     alert("La c\xe9dula NO es v\xe1lida!!!"); 
     return false; 
    } 
    } 
    else 
    { 
    alert("La c\xe9dula no puede tener menos de 10 d\xedgitos"); 
    return false; 
    } 
} 

ответ

0

Допустим, ваше имя модели User и поле в базе данных card, вы могли бы сделать следующее;

<?php 
class User extends AppModel { 

    /** 
    * Validation rules 
    */ 
    public $validate = array(
     'card' => array(
      'validateCard' => array(
       'rule' => array('validateCard'), 
       'message' => 'Card does not validate' 
      ) 
     ) 
    ); 

    /** 
    * Custom validation rule 
    * @return bool 
    */ 
    public function validateCard($field) { 
     $cardNumber = $field['card']; 

     // Here, perform your logic and return a boolean 

    } 


} 

Кроме того, убедитесь, что на ваш взгляд, вы используете FormHelper для вывода формы входы и все должны играть хорошо. Например;

<?php 
echo $this->Form->create(); 
echo $this->Form->input('User.card'); 
echo $this->Form->end(); 
Смежные вопросы