kotchuprik/yii2-sortable-widgets

实现了 Rubaxa/Sortable for Yii2。支持在内部排序的栅格视图。

安装数: 104 180

依赖者: 9

建议者: 0

安全: 0

星标: 60

关注者: 11

分支: 23

类型:yii2-extension

v2.2.0 2022-07-13 23:10 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:58:09 UTC


README

Join the chat at https://gitter.im/kotchuprik/yii2-sortable-widgets

为 Yii2 小部件实现 Rubaxa/Sortable。

支持

  • GridView 小部件。

demo

Latest Stable Version Total Downloads Monthly Downloads Latest Unstable Version License

用法

创建一个新的迁移,将父类更改为扩展中的迁移类,并指定表名属性

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
        ],
        ...
    ],
...