$usuario = $this->Modelo->query('Select * from users as User where id = '.$this->Auth->user('id'));

On 02/02/2012 21:36, wilson avelino wrote:
Se puede dar acceso a cada controlador mediante este plugin.

http://www.alaxos.ch/blaxos/pages/view/plugin_acl


y se consulta el identificador de cada usuario por medio de la variable ($this->Auth->user('id') o hacie ndo var_dump($this->Auth->user) se puede ver el contenido de esta variable.

una vez obtenido el id de usuario se puede realizar la busqueda en el controlador de users o importando el modelo si el metodo usado no se encuentra en dicho controlador.


El 2 de febrero de 2012 09:26, Francisco Javier Peña Caballero <[email protected] <mailto:[email protected]>> escribió:

    Hola otra vez chicos, he encontrao una solución a ver qué os parece:

    Buscando por google, he dado con un tema sobre como el usuario
    logueado puede editar sus datos, es decir como una función
    actualizar perfil:

    function update() {

    // This sets the logged in user as the user to update
    $this->User->id = $this->Auth->user('id');
    // Prepopulate form with logged in user details
    if (empty($this->data)) {
    $this->data = $this->User->read();
    }
    // Save user
    else {
    if ($this->User->save($this->data)) {
    $this->Session->setFlash(__('Actualización completada.',
    'default', array('class'=>'success')));
    $this->redirect(array('action'=>'view', $this->Auth->user('id')));

    }
    // There was an error
    else {
    $this->Session->setFlash(__('Errores mientras se actualiza el
    usuario:', 'default', array('class'=>'error')));
    }
    }
    }

    Así que he tomado la redirección:

    (array('action'=>'view', $this->Auth->user('id')));

    Y en app_controller coloco como redirección tras logueo:

    $this->Auth->loginRedirect = array('controller' => 'users',
    'action' => 'perfil', $this->Auth->user('id'));

    Ahora lo que quiero es configurar la ruta /users/view/id del
    usuario, para que no se muestre así: /users/view/3, y se muestre
    como: /perfil-usuario

    Router::connect ('/perfil-usuario', array('controller'=>'users',
    'action'=>'view', 3));

    Lo que me falta en el tercer parámetro en vez de colocar la id del
    usuario en cuestión, ponerlo genérico, para que cualquier id de
    usuario, ya sea el id=4 o id=50, se muestre como /perfil-usuario,
    no sé si me explico bien. Saludos y a ver qué os parece la propuesta.



    El 1 de febrero de 2012 17:58, Francisco Javier Peña Caballero
    <[email protected] <mailto:[email protected]>>
    escribió:

        Bueno tras varios días leyendo el tutorial, y tirando de
        varias páginas buscando un ejemplo parecido como un loco y
        haciendo pruebas, casi que arrojo la toalla. No sé como
        mostrar en la acción perfil ( ) los datos del usuario
        logueado. Es decir quiero lo que me sale en la vista
        users/view/(id del usuario), todos los datos relacionados con
        el mismo. Pero no termino de conseguirlo. Un saludo y gracias
        de nuevo.

        El 30 de enero de 2012 12:19, Pau Dominguez
        <[email protected] <mailto:[email protected]>> escribió:

            Hola Francisco.
            Yo de ti haría el tutorial que hay en
            http://book.cakephp.org/2.0/es/tutorials-and-examples/blog/blog.html
            Entenderás como funciona cakephp y podrás entender porque
            no te sale nada. Es mejor perder un poco de tiempo al
            principio, ya que te ahorrará mucho después.
            Suerte.
            Pau.


            On 30/01/2012 11:08, Francisco Javier Peña Caballero wrote:
            Se me olvidaba, las relaciones:

            tabla Comunidades tiene un campo user_id y presidente_id
            (es decir cada comunidad tiene un administrador y un
            presidente)

            tabla Pedidos tiene: user_id, tipo_id y estado_id (cada
            pedido tiene un tipo de pedido, un estado y pertenece a
            un usuario)





            El 30 de enero de 2012 11:02, Francisco Javier Peña
            Caballero <[email protected]
            <mailto:[email protected]>> escribió:

                Buenos días, he agregado con var $uses = array(' ');
                todos los modelos que voy a usar:

                var $uses =
                
array('User','Comunidade','Presidente','Pedido','Estado','Tipo');

                Te explico, cuando un usuario se loguee, le saldrá
                sus datos personales, los de la tabla users (nombre,
                apellidos, dni, email, etc), que se muestran
                perfectamente en la vista perfil.ctp vía:

                <?php echo $this->Session->read('Auth.User.nombre');?>

                <?php echo $this->Session->read('Auth.User.apellidos');?>

                Etc

                Ahora quiero que se muestre las comunidades que el
                usuario administra, así como el presidente de cada
                comunidad. Y por último que se muestren sus pedidos,
                así como el tipo de pedido y el estado del mismo, que
                pertenecen por supuesto a otra tabla (y otro modelo).

                Pues agregando en la vista perfil.ctp:

                <?php echo
                $this->Session->read('Auth.Comunidade.nombre');?>
                <?php echo
                $this->Session->read('Auth.Presidente.nombre');?>
                <?php echo $this->Session->read('Auth.Tipo.tipo');?>
                <?php echo $this->Session->read('Auth.Pedido.fecha');?>
                <?php echo $this->Session->read('Auth.Estado.estado');?>

                No me sale nada. No sé si no está bien cargados los
                modelos o no sé. Y como sería el foreach para que
                muestre todas las comunidades que el usuario
                administra por un lado, y todos los pedidos que ha
                realizado por otro?. Un saludo

                El 26 de enero de 2012 14:24, Daniel Gómez
                <[email protected]
                <mailto:[email protected]>> escribió:

                    Ok como ya por lo menos te sale el usuario en tu
                    vista perfil.ctp

                    <?php echo $this->Session->read('User.username');


                    Ahora digamos que tiene una tabla pedidos. Pero
                    no se que campos tenga
                    pedidos. Digamos que tiene estos campos:

                    id
                    nombre
                    producto
                    created
                    modified


                    en el controlador de usersController coloca esto:

                    class UsersController extends AppController {

                        var $name = 'Users';

                       var $uses = array('User', 'Pedido');

                    function login() {

                    $user = $this->User->find('first',
                    array('conditions' =>
                    array('User.username' =>
                    $this->data['User']['username'])));  // esta
                    era la q estaba para q muestre dato como el nombre


                    $pedido = $this->Pedido->find('first',
                    array('conditions' =>
                    array('Pedido.nombre' =>
                    $this->data['Pedido']['nombre'])));
                    }
                    }


                    AHora en tu vista perfil.ctp agrega esto:


                    <?php echo $this->Session->read('Pedido.nombre'); ?>

                    Listo hay te mostrara los nombres de los pedidos
                    que halla en la B.D

                    También si quiere mostrar todos los pedidos
                    agreguele un foreach y
                    listo



                    --
                    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 [email protected]
                    <mailto:[email protected]>.
                    Para anular tu suscripción a este grupo, envía un
                    correo electrónico a
                    [email protected]
                    <mailto:cakephp-es%[email protected]>
                    Para tener acceso a más opciones, visita el grupo
                    en http://groups.google.com/group/cakephp-es?hl=es.




-- Francisco Javier Peña Caballero
                Tlfno: 652966610




-- Francisco Javier Peña Caballero
            Tlfno: 652966610

-- 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 [email protected]
            <mailto:[email protected]>.
            Para anular tu suscripción a este grupo, envía un correo
            electrónico a [email protected]
            <mailto:[email protected]>
            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 [email protected]
            <mailto:[email protected]>.
            Para anular tu suscripción a este grupo, envía un correo
            electrónico a [email protected]
            <mailto:cakephp-es%[email protected]>
            Para tener acceso a más opciones, visita el grupo en
            http://groups.google.com/group/cakephp-es?hl=es.




-- Francisco Javier Peña Caballero
        Tlfno: 652966610




-- Francisco Javier Peña Caballero
    Tlfno: 652966610

-- 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 [email protected]
    <mailto:[email protected]>.
    Para anular tu suscripción a este grupo, envía un correo
    electrónico a [email protected]
    <mailto:cakephp-es%[email protected]>
    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 [email protected]. Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected] 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 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a