Вопрос по CSort

делаю проверку в контроллере




$criteria = new CDbCriteria;

		

$sort = new CSort('News');

$sort->defaultOrder = 'id DESC';

$sort->applyOrder($criteria);

	

$sort->attributes = array(

	'id'=>'ID',

	'title'=>'title',

	'create_date'=>'create_date',

	'status'=>'status',

);


echo $sort->link('title','title'); 

получаю ссылку




<a class="desc" href="/news/list/sort/title/">title</a>



почему в имени ссылке это слово "title" ?

как сделать чтобы было так




<a class="desc" href="/news/list/sort/title/">Заголовок</a>



в моделе у меня


public function attributeLabels()

{

	return array(

		'id'=>'ID',

		'content'=>'Текст',

		'author_id'=>'Автор',

		'views'=>'Просмотров',

		'create_date'=>'Дата',

		'title'=>'Заголовок',

		'image'=>'Файл',						

        );

}

разве CSort не может добраться до этой самой строчке ‘title’=>‘Заголовок’, ?

или я может не правильно что-то делаю…

Есть ещё такой вопрос, выше привёл код $sort->attributes в котором имеется массив к примеру такая строчка ‘title’=>‘title’,

то что до знака равно это как я понял поле в БД оно должно указыватся как есть, а то что после знака равно, что это такое и где оно участвует, случайно не label это? но если это label то почему оно не появляется в ссылке в качестве имени?

И последний вопрос по CActiveDataProvider, в контроллере пишу


	   $dataProvider=new CActiveDataProvider('News', array(

		'criteria'=>$criteria, 				

		'pagination'=>array(

			'pageSize'=>10,

			'pageVar'=>'page', 

		 ),

	   ));



CSort нельзя перенести в CActiveDataProvider?

смотрите внимательнее, CSort в CActiveDataProvider уже есть

далее посмотрите на сигнатуру метода CSort.link, если вы подаете второй аттрибут он и будет заголовком (а CSort в противном случае и добрался бы сам до заголовка)…

$sort->attributes указывает на аттрибуты, которые могут сортироваться (т.е. либо список, либо массив с asc,desc пропертями - подробнее в CSort).

хм, ну я примерно так и представлял, что при указании в качестве второго аргумента в массиве $sort->attributes должен ссылаться на attributeLabels, например так


$sort->attributes = array(

        'id'=>'ID',

        'title'=>'title',

        'create_date'=>'create_date',

        'status'=>'status',

);


public function attributeLabels()

{

        return array(

                'id'=>'ID',

                'content'=>'Текст',

                'author_id'=>'Автор',

                'views'=>'Просмотров',

                'create_date'=>'Дата',

                'title'=>'Заголовок',

                'image'=>'Файл',                                                

        );

}

тоесть если второй атрибут “title” из $sort->attributes совпадёт из attributeLabels() в первом атрибуте ‘title’=>‘Заголовок’, то должен отобразиться “Заголовок” но почему-то этого не происходит, выводить просто “title”