Глядя на эту статью
http://www.yiiframework.com/doc/api/1.1/CSort
Это показывает, что вы можете сортировать столбцы, которые являются «virtial»
В моем GridView у меня есть
'columns' => [
[
'label' => 'Name',
'attribute' => 'displaynamehtml',
'format' => 'raw'
],
‘displaynameashtml’ — это атрибут, который объединяет first_name и last_name и создает кликабельный URL.
Чтобы отсортировать это у меня есть:
$dataProvider->setSort([
'attributes' => [
'displaynamehtml' => [
'asc' => 'first_name, last_name',
'desc' => 'first_name DESC, last_name DESC',
'label' => 'Name'
],
Однако это не работает и дает мне ошибку
‘Недопустимый аргумент для foreach ()’
Есть идеи, что не так?
Попробуйте что-то вроде
$dataProvider->setSort([
'attributes' => [
'displaynamehtml' => [
'asc' => [
'first_name' => SORT_ASC,
'last_name' => SORT_ASC,
],
'desc' => [
'first_name' => SORT_DESC,
'last_name' => SORT_DESC,
],
'label' => 'Name'
],
Я предлагаю немного другое:
$dataProvider->sort->attributes['displaynamehtml'] = [
'asc' => [
'first_name' => SORT_ASC,
'last_name' => SORT_ASC,
],
'desc' => [
'first_name' => SORT_DESC,
'last_name' => SORT_DESC,
],
];
Поместите это в поиск модели