Buenos dias muchachos: Estoy validando en el modelo. Tengo una tabla con el campo Cuit. el mismo esta declarado como integer(11).
en el modelo, en las validaciones tengo: 'cuit'=> array( 'rule' => array('CPcuitValido'), 'message' => 'Cuit invalido.' ) y la funcion declarada mas abajo que dice: function CPcuitValido( $cuit ) { $esCuit=false; if ( strlen($cuit) <> 11) { // si to estan todos los digitos $esCuit=false; } else { $x=$i=$dv=0; // Multiplico los dígitos. $vec[0] = (substr($cuit, 0, 1)) * 5; $vec[1] = (substr($cuit, 1, 1)) * 4; $vec[2] = (substr($cuit, 2, 1)) * 3; $vec[3] = (substr($cuit, 3, 1)) * 2; $vec[4] = (substr($cuit, 4, 1)) * 7; $vec[5] = (substr($cuit, 5, 1)) * 6; $vec[6] = (substr($cuit, 6, 1)) * 5; $vec[7] = (substr($cuit, 7, 1)) * 4; $vec[8] = (substr($cuit, 8, 1)) * 3; $vec[9] = (substr($cuit, 9, 1)) * 2; // Suma cada uno de los resultado. for( $i = 0;$i<=9; $i++) { $x += $vec[$i]; } $dv = (11 - ($x % 11)) % 11; if ($dv == (substr($cuit, 10, 1)) ) { $esCuit=true; } } return( $esCuit ); } Hasta aca todo bien. elproblema es que cuando ejecuto me da siempre cuit invalido. Se queda en la linea if ( strlen($cuit) <> 11), y el navegador muestra una advertencia: strlen() expects parameter 1 to be string, array given. Como que recibio una matriz en vez de un string o un int. Aclaro q ya probe en la BD cambiarle el tipo a cuit por string. y cuando dejo que la funcion pase el if (por ej lo pongo if ( strlen($cuit) = 11) igual en vez de dsitinto, para q pase la condicion, me da un error fatal Fatal error: Can't use function return value in write context in C:\xampp\htdocs\PRUEBA\app\models\contribuyente.php on line 71 La linea 71, es precisamente la del bendito If..... si alguien me puede dar una mano de por que la funcion me toma una matriz.. hace 3 dias q vengo dando vueltas con esto. desde ya muchas gracias y saludos Pablo -- Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google. Para publicar una entrada en este grupo, envía un correo electrónico a cakephp-es@googlegroups.com. Para anular tu suscripción a este grupo, envía un correo electrónico a cakephp-es+unsubscr...@googlegroups.com Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.