Te pasa una matriz del tipo $variable[MODELO][CAMPO] puedes usar la
variable directamente desde el arreglo.

--
Leonardo Hidalgo Piña
Desarrollador Web
http://rocketdev.cl

MSN: leohida...@gmail.com
Celular: (+56) (99) 632 5603
Skype: r0cket82
Twitter: rocket82

El 02-07-2012, a las 12:58, pablo <arnuspa...@gmail.com> escribió:

Hola Leo, vi q pasaba una matriz, pero no entiendo por que.
soy nuevo en cake, estoy medio perdido con esto.
como hago para q no me pase una matriz y pase otro tipo de valor?
gracias

Pablo

El 2 de julio de 2012 12:56, Leonardo Hidalgo Piña
<leohida...@gmail.com>escribió:

> Revisaste que valor pasa Cake a la funcion en la variable $cuit? Le esta
> pasando una matriz por eso te manda el error.
>
>
> --
> Leonardo Hidalgo Piña
> Desarrollador Web
> http://rocketdev.cl
>
> MSN: leohida...@gmail.com
> Celular: (+56) (99) 632 5603
>  Skype: r0cket82
> Twitter: rocket82
>
> El 02-07-2012, a las 9:48, pablo <arnuspa...@gmail.com> escribió:
>
> 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.
>
>  --
> 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.
>

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

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

Responder a