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