kotchuprik / yii2-sortable-widgets
实现了 Rubaxa/Sortable for Yii2。支持在内部排序的栅格视图。
v2.2.0
2022-07-13 23:10 UTC
Requires
- yiisoft/yii2: *
README
为 Yii2 小部件实现 Rubaxa/Sortable。
支持
- GridView 小部件。
用法
创建一个新的迁移,将父类更改为扩展中的迁移类,并指定表名属性
class m140811_131705_Models_order extends \kotchuprik\sortable\migrations\Migration { protected $tableName = 'models'; }
将排序行为添加到您的模型中,并指定查询属性
public function behaviors() { return [ 'sortable' => [ 'class' => \kotchuprik\sortable\behaviors\Sortable::className(), 'query' => self::find(), ], ]; }
将排序操作添加到您的控制器中,并指定查询属性
public function actions() { return [ 'sorting' => [ 'class' => \kotchuprik\sortable\actions\Sorting::className(), 'query' => \vendor\namespace\Model::find(), ], ]; }
如果您使用的是其他主键(不是 'id'),您必须在 'pk' 参数中指定它
public function actions() { return [ 'sorting' => [ 'class' => \kotchuprik\sortable\actions\Sorting::className(), 'query' => \vendor\namespace\Model::find(), 'pk' => 'modelField' ], ]; }
将列添加到您的栅格视图中,并指定排序 URL,如这里所示
echo \yii\grid\GridView::widget([ 'dataProvider' => $model->search(), 'rowOptions' => function ($model, $key, $index, $grid) { return ['data-sortable-id' => $model->id]; }, 'columns' => [ [ 'class' => \kotchuprik\sortable\grid\Column::className(), ], 'id', 'title', 'order', ], 'options' => [ 'data' => [ 'sortable-widget' => 1, 'sortable-url' => \yii\helpers\Url::toRoute(['sorting']), ] ], ]);
如果您的国家无法访问 CDN,您可以使用本地依赖项中的 Sortable 库
... 'columns' => [ [ 'class' => \kotchuprik\sortable\grid\Column::className(), 'useCdn' => false ], ... ], ...