Перемещение строк в GridView с сохранением позиции в БД

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Kven
Сообщения: 112
Зарегистрирован: 2016.10.20, 23:03

Перемещение строк в GridView с сохранением позиции в БД

Сообщение Kven »

Всем здравствуйте! Нашел на форуме следующую тему "Изменение позиций строк в БД через GridView", в своем проекте также решил использовать виджет yii2-sortable-grid-view-widget, вроде бы как все сделал по документации - прописал поведение в behaviors модели, прописал action в контроллере
Модель staff

Код: Выделить всё

public function behaviors()
{
    return [
        'sort' => [
            'class' => SortableGridBehavior::className(),
            'sortableAttribute' => 'position'
        ],
    ];
}
Котроллер staff

Код: Выделить всё

public function actions()
{
    return [
        'sort' => [
            'class' => SortableGridAction::className(),
            'modelName' => Staff::className(),
        ],
    ];
}
В документации к виджету сказано следующее:
Используйте SortableGridView в качестве стандартного GridView с опцией sortableAction. Вы также можете подписаться на виджет, созданный JS event 'sortableSuccess' после успешной сортировки.
В общем вопрос в следующем - как правильно в GridView прописать эту опцию, чтобы можно было использовать сортировку? Или может я неправильно понимаю, как вообще использовать этот виджет!?
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Re: Перемещение строк в GridView с сохранением позиции в БД

Сообщение long399 »

Ничего не нужно прописывать больше, просто в представлении вместо \yii\grid\GridView используйте SortableGridView.

Код: Выделить всё

echo \himiklab\sortablegrid\SortableGridView::widget([
        'dataProvider' => $dataProvider,
        'sortableAction'=>Url::toRoute('staff/sort'),
        'columns' => [
...
Ответить