ereminmdev / yii2-crud
Crud module for Yii framework.
Installs: 2 957
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.4
- ext-gd: *
- ext-mbstring: *
- ereminmdev/yii2-sortablejs: ^1.0
- phpoffice/phpspreadsheet: ^1.1
- yiisoft/yii2: ~2.0.14
- dev-main
- v1.1.260
- v1.1.259
- v1.1.258
- v1.1.257
- v1.1.256
- v1.1.255
- v1.1.254
- v1.1.253
- v1.1.252
- v1.1.251
- v1.1.250
- v1.1.249
- v1.1.248
- v1.1.247
- v1.1.246
- v1.1.245
- v1.1.244
- v1.1.243
- v1.1.242
- v1.1.241
- v1.1.240
- v1.1.239
- v1.1.238
- v1.1.237
- v1.1.236
- v1.1.235
- v1.1.234
- v1.1.233
- v1.1.232
- v1.1.231
- v1.1.230
- v1.1.229
- v1.1.228
- v1.1.227
- v1.1.226
- v1.1.225
- v1.1.224
- v1.1.223
- v1.1.222
- v1.1.221
- v1.1.220
- v1.1.219
- v1.1.218
- v1.1.217
- v1.1.216
- v1.1.215
- v1.1.214
- v1.1.213
- v1.1.212
- v1.1.211
- v1.1.210
- v1.1.209
- v1.1.208
- v1.1.207
- v1.1.206
- v1.1.205
- v1.1.204
- v1.1.203
- v1.1.202
- v1.1.201
- v1.1.200
- v1.1.199
- v1.1.198
- v1.1.197
- v1.1.196
- v1.1.195
- v1.1.194
- v1.1.193
- v1.1.192
- v1.1.191
- v1.1.190
- v1.1.189
- v1.1.188
- v1.1.187
- v1.1.186
- v1.1.185
- v1.1.184
- v1.1.183
- v1.1.182
- v1.1.181
- v1.1.180
- v1.1.179
- v1.1.178
- v1.1.177
- v1.1.176
- v1.1.175
- v1.1.174
- v1.1.173
- v1.1.172
- v1.1.171
- v1.1.170
- v1.1.169
- v1.1.168
- v1.1.167
- v1.1.166
- v1.1.165
- v1.1.164
- v1.1.163
- v1.1.162
- v1.1.161
- v1.1.160
- v1.1.159
- v1.1.158
- v1.1.157
- v1.1.156
- v1.1.155
- v1.1.154
- v1.1.153
- v1.1.152
- v1.1.151
- v1.1.150
- v1.1.149
- v1.1.148
- v1.1.147
- v1.1.146
- v1.1.145
- v1.1.144
- v1.1.143
- v1.1.142
- v1.1.141
- v1.1.140
- v1.1.139
- v1.1.138
- v1.1.137
- v1.1.136
- v1.1.135
- v1.1.134
- v1.1.133
- v1.1.132
- v1.1.131
- v1.1.130
- v1.1.129
- v1.1.128
- v1.1.127
- v1.1.126
- v1.1.125
- v1.1.124
- v1.1.123
- v1.1.122
- v1.1.121
- v1.1.120
- v1.1.119
- v1.1.118
- v1.1.117
- v1.1.116
- v1.1.115
- v1.1.114
- v1.1.113
- v1.1.112
- v1.1.111
- v1.1.110
- v1.1.109
- v1.1.108
- v1.1.107
- v1.1.106
- v1.1.105
- v1.1.104
- v1.1.103
- v1.1.102
- v1.1.101
- v1.1.100
- v1.1.99
- v1.1.98
- v1.1.97
- v1.1.96
- v1.1.95
- v1.1.94
- v1.1.93
- v1.1.92
- v1.1.91
- v1.1.90
- v1.1.89
- v1.1.88
- v1.1.87
- v1.1.86
- v1.1.85
- v1.1.84
- v1.1.83
- v1.1.82
- v1.1.81
- v1.1.80
- v1.1.79
- v1.1.78
- v1.1.77
- v1.1.76
- v1.1.75
- v1.1.74
- v1.1.73
- v1.1.72
- v1.1.71
- v1.1.70
- v1.1.69
- v1.1.68
- v1.1.67
- v1.1.66
- v1.1.65
- v1.1.64
- v1.1.63
- v1.1.62
- v1.1.61
- v1.1.60
- v1.1.59
- v1.1.58
- v1.1.57
- v1.1.56
- v1.1.55
- v1.1.54
- v1.1.53
- v1.1.52
- v1.1.51
- v1.1.50
- v1.1.49
- v1.1.48
- v1.1.47
- v1.1.46
- v1.1.45
- v1.1.44
- v1.1.43
- v1.1.42
- v1.1.41
- v1.1.40
- v1.1.39
- v1.1.38
- v1.1.37
- v1.1.36
- v1.1.35
- v1.1.34
- v1.1.33
- v1.1.32
- v1.1.31
- v1.1.30
- v1.1.29
- v1.1.28
- v1.1.27
- v1.1.26
- v1.1.25
- v1.1.24
- v1.1.23
- v1.1.22
- v1.1.21
- v1.1.20
- v1.1.19
- v1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.32
- v1.0.28
- v1.0.27
- v1.0.26
- v1.0.25
- v1.0.24
- v1.0.23
- v1.0.22
- v1.0.21
- v1.0.20
- v1.0.19
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2025-02-23 14:22:23 UTC
README
Crud module for Yii framework.
Install
composer require --prefer-dist ereminmdev/yii2-crud
Use
- Add Crud module to config file:
'modules' => [
'crud' => [
'class' => 'ereminmdev\yii2\crud\Crud',
],
],
- Add crudConfig() static function to ActiveRecord model:
public static function crudConfig()
{
return [
'title' => Yii::t('app', 'Products'),
],
}
More options:
public static function crudConfig()
{
return [
'title' => Yii::t('app', 'Products'),
'dataProvider' => function (ActiveDataProvider $dataProvider) {
$dataProvider->sort = [
'defaultOrder' => [
'title' => SORT_ASC,
],
];
},
'gridShowColumns' => ['title', 'image'],
'gridHideColumns' => ['content'],
'gridEditLinkField' => 'id',
'gridColumns' => [
'title' => [
'attribute' => 'title',
'label' => 'Title',
'value' => fn(self $model) => $model->getBrandTitle() . ' ' . $model->title,
],
'colors1' => false,
],
'formFields' => [
'colors' => fn(ActiveForm $form, self $model) => $form->field($model, 'sizes')->checkboxList(static::colors()),
'colors2' => false,
],
'columnsSchema' => [
'shop_phone' => ['type' => 'tel'],
'shop_email' => ['type' => 'email'],
'shop_url' => ['type' => 'url'],
'brand_id' => [
'type' => 'relation',
'rtype' => 'hasOne',
'relation' => 'brand',
'getList' => fn() => Brand::find()
->select(['title', 'id'])
->orderBy(['title' => SORT_ASC])
->indexBy('id')
->column(),
],
'sizes' => [
'type' => 'relation',
'rtype' => 'hasMany',
'relation' => 'sizes',
],
'status' => [
'type' => 'array',
'itemList' => fn() => static::statuses(),
'gridDropButton' => true,
],
'comment' => ['jsEditPrompt' => true],
'colors3' => false,
],
'gridToolbarActions' => [
'{custom}' => Html::a('Моя кнопка', '#', ['class' => 'btn btn-default']),
],
'gridActions' => [
'{custom}' => fn(self $model, mixed $key, Crud $crud) => [
'label' => 'Мое действие',
'url' => '#',
],
],
'controller.behaviors' => [
'access' => [
'class' => AccessControl::class,
'rules' => [
[
'actions' => ['index'],
'allow' => true,
'roles' => ['@'],
],
[
'actions' => ['create', 'update'],
'allow' => true,
'roles' => ['admin'],
],
],
],
],
'views.index.h1' => fn(Crud $crud, View $view) => '<h1>' . Html::encode($view->title) . '</h1>',
'access.save' => false, // hide Create, Save and Update buttons
'access.delete' => false, // hide Delete button
];
}
Set tree view:
public static function crudConfig()
{
return [
// ...
'viewAs' => 'tree', // enable tree as default index view
'tree' => [
'parentField' => 'parent_id',
'childrenRelation' => 'children',
'sortField' => 'position', // false - disable sorting
'itemActionsTemplate' => "{custom}\n{--}\n{create1}\n{create2}\n{--}",
'itemActions' => [
'{custom}' => fn(self $model, DefaultController $controller, Crud $crud) => [
'label' => 'Custom label',
'url' => ['#'],
],
],
'titleBlock' => fn(self $model, DefaultController $controller, Crud $crud) => Html::encode($model->title),
'titleBlock_text' => fn(self $model, DefaultController $controller, Crud $crud) => Html::encode($model->name),
'titleBlock_options' => fn(self $model, DefaultController $controller, Crud $crud) => ['class' => 'red'],
'titleBlock_onHover' => fn(self $model, DefaultController $controller, Crud $crud) => Html::encode($model->statusText),
'rightBlock' => fn(self $model, DefaultController $controller, Crud $crud) => $model->status,
],
];
}
- Insert link into view:
<?= Url::toRoute(['/crud/default/index', 'model' => Product::class]); ?>