Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Capturar Valores de UserIdentity en Yii

Estas en el tema de Capturar Valores de UserIdentity en Yii en el foro de PHP en Foros del Web. Bueno, soy nueva con Yii. En otras ocasiones he accedido a los valores y relaciones de las variables? de esta forma por ejemplo: Código: $model->username ...
  #1 (permalink)  
Antiguo 05/02/2015, 14:02
Avatar de Beuses  
Fecha de Ingreso: marzo-2009
Ubicación: Maracaibo
Mensajes: 132
Antigüedad: 15 años, 1 mes
Puntos: 5
Pregunta Capturar Valores de UserIdentity en Yii

Bueno, soy nueva con Yii.

En otras ocasiones he accedido a los valores y relaciones de las variables? de esta forma por ejemplo:

Código:
$model->username
Pero esta vez, trabajando con el inicio de sesión, he copiado de Models al archivo "LoginForm" y del components el archivo "UserIdentity" les he cambiado el nombre y poder tener esa funciones para una parte que esta en mis Modules.

La cuestión es que cuando hago esto
Código:
print_r($model);
en el controlador luego que se ha aprobado la sesion para ver el contenido me imprime esto:


Código:
LoginForma Object ( [username] => admin [password] => admin123 [rememberMe] => [temp_pass] => [_identity:LoginForma:private] => 
UserIdentityVe Object ( [_id] => 318 [temp_pass] => [record] => [username] => admin [password] => admin123 [errorCode] => 0 [errorMessage] => [_state:CBaseUserIdentity:private] => Array ( )
 [_e:CComponent:private] => 
[_m:CComponent:private] => ) [_errors:CModel:private] => Array ( ) [_validators:CModel:private] => CList Object ( [_d:CList:private] => Array ( [0] =>
 CRequiredValidator Object ( [requiredValue] => [strict] => [trim] => 1 [attributes] => Array ( [0] => username [1] => password ) [message] => [skipOnError] =>
 [on] => Array ( ) [except] => Array ( ) [safe] => 1 [enableClientValidation] => 1 [_e:CComponent:private] => [_m:CComponent:private] => )
 [1] => CBooleanValidator Object ( [trueValue] => 1 [falseValue] => 0 [strict] => 
[allowEmpty] => 1 [attributes] => Array ( [0] => rememberMe ) [message] => [skipOnError] => [on] => Array ( ) [except] => Array ( ) 
[safe] => 1 [enableClientValidation] => 1 [_e:CComponent:private] => 
[_m:CComponent:private] => ) [2] => CInlineValidator Object ( [method] => authenticate [params] => Array ( ) [clientValidate] => [attributes] => Array ( [0] => password ) [message] => [skipOnError] => [on] => Array ( )
 [except] => Array ( ) 
[safe] => 1 [enableClientValidation] => 1 [_e:CComponent:private] => [_m:CComponent:private] => ) ) [_c:CList:private] => 3 [_r:CList:private] => 
[_e:CComponent:private] => [_m:CComponent:private] => ) [_scenario:CModel:private] => [_e:CComponent:private] => [_m:CComponent:private] => )
Y quiero imprimir el valor '318' que es el id del usuario... pero no se como llegar hasta ahi a partir del $model!!

Intente:
Código:
$model->UserIdentityVe  Para ver si podía ponerme en ese nivel pero me dio error.
$model->_id y tambien me dio error
Alguien puede decirme como puedo lograr capturar el _id??? please...
  #2 (permalink)  
Antiguo 05/02/2015, 14:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Capturar Valores de UserIdentity en Yii

En primer lugar debes mirar que algunas propiedades son privadas, por lo tanto no podrás accederlas directamente.

Para obtener su valor probablemente debes invocar un método de tu modelo, te sugiero revisar la documentación al respecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/02/2015, 14:19
Avatar de Beuses  
Fecha de Ingreso: marzo-2009
Ubicación: Maracaibo
Mensajes: 132
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Capturar Valores de UserIdentity en Yii


Bien!!! Gracias a tu comentario pude hacer esto dentro del "LoginForm" en la función login

Código PHP:
return array("aprobado"=>true,"temp_pass"=>$temp_pass,"idV"=>$id); // agregué "idV"=>$id 
Ahora en mi controlador hago asi

Código PHP:
print_r($model->login()); 
y me imprime esto:
Código:
Array ( [aprobado] => 1 [temp_pass] => [idV] => 318 )
Asi que hice print_r($model->login()['idV']); y pude tener el id..
No se si sea la mejor manera de hacerlo, pero me ha funcionado al parecer..

Última edición por Beuses; 05/02/2015 a las 14:30

Etiquetas: login, niveles, yii
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:52.