Hmm,
I must say it is a bit disappointing to see entire "virtual attribute" concept mostly misleading.
Well,
I have this inside my 'Users' model:
public $fullname;
{other code here - not really important}
public function search()
{
$sort = new CSort();
$sort->attributes = array('*', 'CONCAT(surname, ", ", forename) AS fullname');
$sort->defaultOrder = array('fullname' => CSort::SORT_ASC);
$criteria=new CDbCriteria;
$criteria->select = array('*', 'CONCAT(surname, ", ", forename) AS fullname');
$criteria->compare('id', $this->id);
$criteria->compare('login', $this->login, true);
$criteria->compare('surname', $this->surname, true);
$criteria->compare('forename', $this->forename, true);
$criteria->compare('email', $this->email, true);
$criteria->compare('CONCAT(surname, ", ", forename)', $this->fullname, true);
$criteria->compare('company_id', $this->company_id);
$criteria->compare('grupa', $this->grupa);
$criteria->compare('active', $this->active);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array('pageSize'=>10),
'sort' => $sort,
));
}
Having this I have a nice working CGridView and Advanced Search pane but for whatever reason "fullname" column is not sortable.
Any idea??? - I feel already exhausted fighting with this all alone...