Yii Framework Forum: Como Ver Datos De La Persona Logueada? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como Ver Datos De La Persona Logueada? Rate Topic: ***** 1 Votes

#1 User is offline   keiny 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 31
  • Joined: 22-April 14

Posted 29 April 2014 - 09:04 PM

Hola, soy nueva en yii y todavia estoy aprendiendo php


Quisiera saber:

Como puedo ver los datos de la persona que esta logueada en ese momento?

Yo utilizo esto para ver el perfil
<?php $a = Yii::app()->user->isGuest? '' : Yii::app()->user->getId(); ?>
'url'=>array('/usuarios/view','id'=>$a)

Pero si quiero ver otros datos como por ejemplo los pagos que esa persona realizó, como se haria, es decir, datos que estan en otras tablas y que no es posible capturar en el inicio de sesion con setState

Muchas gracias
0

#2 User is offline   Hélder Pestana 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 28-April 14
  • Location:Funchal

Posted 30 April 2014 - 03:37 AM

View Postkeiny, on 29 April 2014 - 09:04 PM, said:

Hola, soy nueva en yii y todavia estoy aprendiendo php


Quisiera saber:

Como puedo ver los datos de la persona que esta logueada en ese momento?

Yo utilizo esto para ver el perfil
<?php $a = Yii::app()->user->isGuest? '' : Yii::app()->user->getId(); ?>
'url'=>array('/usuarios/view','id'=>$a)

Pero si quiero ver otros datos como por ejemplo los pagos que esa persona realizó, como se haria, es decir, datos que estan en otras tablas y que no es posible capturar en el inicio de sesion con setState

Muchas gracias



Hola,

Tengo una situación similar en Yii, donde tengo que consultar los datos adicionales asociados a un usuario. Lo que hice fue crear una tabla donde guardo la información adicional, así como la identificación del usuario. Después consulto los datos utilizando la función findAllByAttributes.

Por ejemplo:


/**
/* Userpayments Controller
/* Function to load additional details from table t_userpayments. Filters the information using the current 
/* logged in user id
*/
public function loadModel()
{
		$model=Userpayments::model()->findAllByAttributes(array('userid'=>Yii::app()->user->getId()));
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
}



No puedes olvidar que debes cambiar el archivo UserIdentity y asociarlo a tus Usuarios / Logins

Gracias y buen trabajo :)
0

#3 User is offline   keiny 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 31
  • Joined: 22-April 14

Posted 01 May 2014 - 04:27 PM

Hola

Gracias por responderme, pero aun no logro entender eso. Como así que se crea otra tabla para guardar la sesion del que esta logueado en ese momento... Podrías darme un ejemplo de eso (completo)

Supongo que hay muchas maneras de lograr lo que quiero. Solo que no le he encontrado la solución
0

#4 User is offline   softark 

  • Keep It Simple
  • Yii
  • Group: Moderators
  • Posts: 2,062
  • Joined: 16-February 11
  • Location:Japan

Posted 01 May 2014 - 05:30 PM

/* Moved from "General Discussion for Yii 1.1.x" to "Spanish" */
0

#5 User is offline   erickMartinez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 114
  • Joined: 20-December 13

Posted 02 May 2014 - 08:36 AM

View Postkeiny, on 01 May 2014 - 04:27 PM, said:

Hola

Gracias por responderme, pero aun no logro entender eso. Como así que se crea otra tabla para guardar la sesion del que esta logueado en ese momento... Podrías darme un ejemplo de eso (completo)

Supongo que hay muchas maneras de lograr lo que quiero. Solo que no le he encontrado la solución



mira el ejemplo q el te da es este :

$model=Userpayments::model()->findAllByAttributes(array('userid'=>Yii::app()->user->getId()));


en donde el modelo donde están guardando tus usuarios seria Userpayments (aqui usas tu modelo) lo que hace el es recorrer toda la base de datos en busca de una entrada que coincidan con 'userid'=>Yii::app()->user->getId()en caso de que exista alguna que coincida se va aguardar en la variable $model .... ya si quieres llamar algún campo solo debes hace $model->teléfono ... $model->dirección o lo que desees llamar y el te traera lo que tiene ese campo de acuerdo al usuario q esta logeado si aun no entendiste nos avisas :D

si quieres ya buscar en otras tablas con el id debes tener en tus otras tablas un campo relacionado con el del usuario en el cual se especifique el id del usuario a quien pertenece la entrada ejemp:

tienes la tabla Vehiculos :

id_vehiculos
vehiculos_placas
vehiculos_tipo
vehiculos_dueño
userid


como veras en esta tabla hay un userid que sera en donde se guarde el id del usuario al cual se le asignara la entrada de tal manera q ya cuando necesites hacer un filtro deberás hacer :
vas a tu controlador y en el action donde necesitas llamar los datos pones un codigo similar a este pero con tus cosas :D
$criteria = new CDbCriteria();
$criteria->condition = "userid= ".Yii::app()->user->getId();
$nombre_de_varible=Vehiculos::model()->findAll($criteria);


esto ira a la tabla de Vehículos y buscara de acuerdo a los parámetros que le pasaste en la condición del $criteria, al momento de querer recuperar las placas del vehiculo del usuario logeado en el momento simplemente lo llamare con $nombre_de_varible->vehiculos_placas y listo :D

PD: " no probe el codigo, lo hice para darte una idea de lo que debes hacer para filtrar las tablas :D no se si funcione :D prueba lo y me avisas"
0

#6 User is offline   lagogz 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 453
  • Joined: 30-November 12
  • Location:Galiza

Posted 06 May 2014 - 01:20 AM

Buenas.

Lo q te viene a decir Erick es q cuando te logueas tendrás el identificador de usuario en Yii->app()->users (con getId o como lo tengas definido).

Entonces todo lo que tu tengas en tu base de datos relacionado con el id de usuario podrás recuperarlo gracias a sus modelos de datos.

Imagínate q tengas una tabla compras q tenga un id de usuario y otra que sea ventas con el id de usuario. Entonces para recuperar las compras y las ventas deun usuario sólo tienes que cargar sus respectivos modelos respecto al id del usuario logueado y listo.

Un saludo.
-----------------------------------------------------------------------------------------------
------------------------------- VISITEN FOCUCHASART --------------------------------
-----------------------------------------------------------------------------------------------
0

#7 User is offline   keiny 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 31
  • Joined: 22-April 14

Posted 06 May 2014 - 09:21 AM

Hola

Ya lo solucioné.
Lo hice de otra manera.

El rol 2 es el administrador. El si puede ver todo.
De lo contrario, el que entre sólo podrá ver sus pagos realizados


	public function actionIndex()
	{


        if (Yii::app()->user->rol == '2') {

        	$dataProvider=new CActiveDataProvider('Pagos');
				$this->render('index',array(
					'dataProvider'=>$dataProvider,
				));
        }
        else
        {
			$criteria = new CDbCriteria;
			$criteria->select="*";
			$criteria->condition="p.Id_Usuario=".Yii::app()->user->getId();
			$criteria->join="INNER JOIN tbl_procesos p ON p.Id_Proceso=t.Id_Proceso ";


 			//$criteria->compare('Id_Usuario',Yii::app()->user->getId());
			$dataProvider=new CActiveDataProvider('Pagos', array(
				'criteria'=>$criteria,
				'sort'=>array(
			    //Ordena los registros	
				'defaultOrder'=> array('Id_Proceso'=> CSort::SORT_ASC),
				),
			));
				
			$this->render('index',array(
				'dataProvider'=>$dataProvider,
			));	
		}
	}



De todos maneras gracias por sus aportes
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users