laco-agency / gridview-sortable-column
Yii2 gridview可排序列
v0.5
2021-12-30 15:56 UTC
Requires
- yiisoft/yii2: *
README
允许通过鼠标拖拽对GridView表格中的字符串进行排序。
安装
composer require laco-agency/gridview-sortable-column:~v0.
使用
添加设置
将排序行为连接到模型。在orderAttribute属性中可以指定进行排序的列名。默认情况下,orderAttribute的值为sort_order。
public function behaviors() { return [ 'sortable' => [ 'class' => \laco\sortable\Behaviour::className(), 'orderAttribute' => 'sort_order', ], ]; }
对一个控制器可以连接多个排序动作,并且可以在每个动作中指定自己的设置。如果未指定orderAttribute,则将使用将排序行为连接到模型时指定的值。
public function actions() { return [ 'sorting-one' => [ 'class' => \laco\sortable\Action::className(), 'modelClass' => YourModel::className(), 'orderAttribute' => 'sort_order_one' ], 'sorting-two' => [ 'class' => \laco\sortable\Action::className(), 'modelClass' => YourModel::className(), 'orderAttribute' => 'sort_order_two ], ]; }
向GridView添加可排序列
echo \yii\grid\GridView::widget([ 'dataProvider' => $model->search(), 'rowOptions' => function ($model, $key, $index, $grid) { return ['data-sortable-id' => $model->id]; }, 'columns' => [ [ 'class' => \laco\sortable\Column::className(), 'url' => \yii\helpers\Url::toRoute(['controller/sorting-action']) ], ] ]);