Yii Framework Forum: Consulta secuencial con un parametro - Yii Framework Forum

Jump to content

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

Consulta secuencial con un parametro Rate Topic: -----

#1 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 20 January 2010 - 12:23 PM

La pregunta es de que manera puedo establecer una relacion que mediante un parametro usualmente account_id pueda obtener el listado de clientes, si tengo las siguientes tablas ..

--------------------------
accounts (ActiveRecord)
- account_id
- name
--------------------------
accounts_has_users
- account_id (Relacion hacia accounts.account_id)
- user_id (Relacion hacia users.user_id)
--------------------------
users (ActiveRecord)
- user_id
- username
- lastname
--------------------------
clients (ActiveRecord)
- client_id
- user_id (Relacion hacia users.user_id)
--------------------------

Y actualmente tengo una relacion establecida en el ActiveRecord de la tabla clients

public function relations()
{
  return array(
    'User'=>array(self::HAS_MANY, 'UsersActiveRecord', 'user_id')
  );
}


Al final deberia de conseguir una consulta similar a la siguiente:

SELECT * 
FROM clients 
INNER JOIN users ON clients.user_id = users.user_id 
INNER JOIN accounts_has_users ON users.user_id = accounts_has_users.user_id 
INNER JOIN accounts ON accounts_has_users.account_id = accounts.account_id 
WHERE accounts.account_id = 1 

Celestic Dev Team
Yii Open Source Project Manager
0

#2 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 20 January 2010 - 12:29 PM

Por favor, lee esto:
Relational Active Record

Te va a ayudar mucho!!!
Don't say what you think, think what you say
The problem is communication! Excess of communication!
0

#3 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 20 January 2010 - 05:11 PM

Leyendo las instrucciones pude determinar el tipo de relacion y como crearlas..

ClientsActiveRecord
public function relations()
{
  return array(
    'User'=>array(self::BELONGS_TO, 'UsersActiveRecord', 'user_id'),
  );
}


UsersActiveRecord
public function relations()
{
  return array(
   'Client'=>array(self::HAS_ONE, 'ClientsActiveRecord', 'user_id'),
   'Account'=>array(self::MANY_MANY, 'AccountsActiveRecord', 'account_has_users(account_id, user_id)'),
  );
}


Para acceder a las propiedades hice

$model->User->user_id
$model->User->user_name
$model->User->user_lastname
$model->User->Client->client_id

//El acceso a este campo ya no funciono
//$model->User->Account->account_id


Todo fue bien hasta que trate de acceder al account_id, esa relación no la pude establecer.. alguna idea..
Celestic Dev Team
Yii Open Source Project Manager
0

#4 User is offline   netbur 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 03-June 09

Posted 21 January 2010 - 03:28 AM

No se si es una solución, un error o un apaño extraño pero te cuento.

Al establecer relaciones con el mismo nombre que los modelos (Account y Account), yo he experimentado algún fallo en mi aplicación y no podía acceder a las mismas mediante
$model->relacion->relacion


Prueba a cambiár el nombre de la relación (Account por acount_rel por ejemplo), a mi me funciono.
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