Como Ver Datos De La Persona Logueada?

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 :)

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

[color="#006400"]/* Moved from "General Discussion for Yii 1.1.x" to "Spanish" */[/color]

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

[color="#FF0000"]userid[/color]

como veras en esta tabla hay un [color="#FF0000"]userid[/color] 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"

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.

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