Hola, lo que sucede es que tengo una pantalla donde debo listar unas noticias y los los nombres de los autores de dichas noticias, el problema es que cuando intento ordenar por la columna donde muestro el nombre del autor no me está ordenando, es decir, si intento ordenar por cualquier campo que pertenezca a la tabla de noticia no hay problema, pero cuando intento ordenar por cualquier campo de la tabla relacionada (autor) no me ordena.
actualmente el titulo para el ordenamiento de esa columna lo estoy colocando asi…
Disculpen que haya cosas en ingles y otras en español pero es que son pruebas… jeje
El método en el controlador es…
public function actionAdmin()
{
$this->processAdminCommand();
$criteria=new CDbCriteria;
//Se crea el objeto para la paginación
$pages=new CPagination(Noticia::model()->count($criteria));
//Si se pasa por get la variable 'size'...
if(isset($_GET['size']) and is_numeric($_GET['size']))
$pages->pageSize = $_GET['size'];
else
$pages->pageSize = self::PAGE_SIZE;
$pages->applyLimit($criteria);
//Objeto para el ordenamiento
$sort=new CSort('Noticia');
$sort->applyOrder($criteria);
//Se consultan todos los registros que coinciden con los criterios.
$models=Noticia::model()->with('autor')->findAll($criteria);
//Se despliega la vista...
$this->render('admin',array(
'models'=>$models,
'pages'=>$pages,
'sort'=>$sort,
'columnaTitulo'=>$columnaTitulo,
'idioma'=>$idioma,
));
}
y la función relations es…
public function relations()
{
return array(
'autor'=>array(self::BELONGS_TO, 'User', 'usu_codigo','joinType'=>'INNER JOIN', 'alias'=>'author'),
);
}
Te aseguraste que siempre que decia autor diga author (o viceversa). Es decir, si usas autor, usa autor en todos lados (nombre de la relacion, alias y with, y tambien en la vista)?
Si no es eso entoces puede que puede ser…
Me ha pasado varias veces que una simple coma me rompia todo el codigo (y ni hablar de errores como $text y $texto usados como si fueran la misma variable -y obviamente no lo son-, jajaja)
Uyyy!!.. ya me funcionó, tenias razón con el ejemplo que me pegaste un par de post mas arriba, lo que pasa era que me faltaba hacer el array para la propiedad ‘attributes’, entoonces tuve que agregar lo siguiente: