kotchuprik / yii2-sortable-widgets
Implementation Rubaxa/Sortable for Yii2. Sortable grid view inside.
Installs: 108 856
Dependents: 9
Suggesters: 0
Security: 0
Stars: 60
Watchers: 11
Forks: 23
Type:yii2-extension
Requires
- yiisoft/yii2: *
README
Implementation Rubaxa/Sortable for Yii2 widgets.
Supported:
- GridView widget.
Usage
Create a new migration, change a parent to the migration class from the extension and specify the table name property:
class m140811_131705_Models_order extends \kotchuprik\sortable\migrations\Migration { protected $tableName = 'models'; }
Add the sortable behavior to your model and specify the query property:
public function behaviors() { return [ 'sortable' => [ 'class' => \kotchuprik\sortable\behaviors\Sortable::className(), 'query' => self::find(), ], ]; }
Add the sorting action to your controller and specify the query property:
public function actions() { return [ 'sorting' => [ 'class' => \kotchuprik\sortable\actions\Sorting::className(), 'query' => \vendor\namespace\Model::find(), ], ]; }
If you're using another primary key (not 'id'), you must specify it in 'pk' parameter:
public function actions() { return [ 'sorting' => [ 'class' => \kotchuprik\sortable\actions\Sorting::className(), 'query' => \vendor\namespace\Model::find(), 'pk' => 'modelField' ], ]; }
Add the column to your grid view and specify the sorting url like here:
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']), ] ], ]);
If cdn is not accessible in your country, you can use Sortable library from local dependencies:
... 'columns' => [ [ 'class' => \kotchuprik\sortable\grid\Column::className(), 'useCdn' => false ], ... ], ...