Как я настраиваю сортировку вида Yii2?

Как я могу сортировать с помощью настраиваемого заголовка gridview ?

Пожалуйста, дайте разницу между label и header в Yii2 gridview Yii2 gridview .

Вот мой код:

  <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ [ 'class' => 'yii\grid\DataColumn', 'value' => function ($data) { return $data->myTitle; }, 'headerOptions' => ['style'=>'text-align:center'], 'header' => 'Page Title', 'label' => 'Title' ], ]); ?> 

header ли header и label одинаковой функции?

Как выполнить сортировку в $data->myTitle ?

Здесь мой экран вывода:

введите описание изображения здесь

Я хочу, чтобы название страницы, статус, дата изменения были активными.

Заранее спасибо.

Нашел ответ.

Добавьте атрибуты ActiveDataProvider в свою модель поиска.

 $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => 5, ], 'sort' => ['attributes' => ['myTitle']], ]); 

Добавьте параметр атрибута в виджет:

  <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ [ 'class' => 'yii\grid\DataColumn', 'value' => function ($data) { return $data->myTitle; }, 'headerOptions' => ['style'=>'text-align:center'], 'attribute' => 'myTitle', 'label' => 'Page Title' ], ]); ?> 

Поскольку myTitle – это поле из базы данных, а не пользовательское значение, вы можете просто использовать атрибут . Остальное может быть ненужным, например, по умолчанию class DataColumn

 'columns' => [ [ 'attribute' => 'myTitle', 'label' => 'Label', ] 

Я не очень уверен, что я понимаю ваш вопрос, но опция сортировки может быть включена в ваши modelsearch.php . Поэтому в вашем случае вы должны сделать так.

 $dataProvider = new ActiveDataProvider([ 'query' => $query, 'sort'=> ['defaultOrder' => ['your_column'=>SORT_ASC]] ]); 

если myTitle – это поле в базе данных, почему вы используете такой длинный синтаксис. Просто

 'Columns'=>[ .. 'myTitle', .. ], 

должен работать нормально и должен быть активным для сортировки по вашему желанию

если вам нужен другой заголовок / метка для столбца, используйте метку вместо заголовка, поскольку заголовок является только содержимым ячейки и не может использоваться для сортировки, в то время как ярлык может. Детали

 [ .. 'attribute'=>'myTitle', 'label' => 'Page Title' .. ],