Llevo un tiempo leyendo el foro y haciendo mis primeras cosas con Yii, y ahora me encuentro con una duda. Quiero mostrar en un grid los datos de una tabla prncipal y otra vinculada como se haría con un inner join "a pelo".
He creado el modelo en Gii y lo que quiero es mostrar los datos en un grid (los datos todos juntos y poder hacer búsquedas y ordenarlos). Conseguí que me funcionase haciendo un modelo para cada tabla, pero de esta forma no puedo ni ordenar ni buscar por los campos de la tabla secundaria en el grid.
También he creado las relaciones, pero como si nada, si no tengo el modelo creado de la tabla auxiliar da error.
Estos son los ficheros:
Modelo:
public function relations()
{
return array(
'user' => array(self::BELONGS_TO, 'User', 'userid'),
);
}
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id,true);
$criteria->compare('timestamp',$this->timestamp,true);
$criteria->compare('userid',$this->userid);
$criteria->compare('title',$this->title,true);
$criteria->compare('message',$this->message,true);
$criteria->compare('message_read',$this->message_read);
$criteria->compare('validate',$this->validate);
$criteria->compare('amount',$this->amount);
$criteria->compare('balance',$this->balance);
//$criteria->compare('username',$this->username);
//$criteria->compare('user.username',$this->user.username);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
He comentado las pruebas realizadas y en los dos casos me da error ya que ese campo no existe en esa tabla ya que está en otra.
Se que algo más tengo que hace pero no doy con ello, me leí un montón de veces la sección AR del manual y tampoco me ayudó mucho. Si lo hago con DAO si me funciona y lo tengo mas claro pero no entiendo como hacerlo con AR.