execut/yii2-crud-fields

A behavior for standard fields logic in CRUD based on kartik dynagrid and detailView

Maintainers

👁 execut

Package info

github.com/execut/yii2-crud-fields

Wiki

Type:yii2-extension

pkg:composer/execut/yii2-crud-fields

Statistics

Installs: 1 084

Dependents: 6

Suggesters: 0

Stars: 9

Open Issues: 0

0.56.6 2022-04-08 09:11 UTC

Apache-2.0 63e3895d1e33d9b47b37c7dfadbae887a270fb12

  • Mamaev Yuriy (eXeCUT)

yii2 gridyii2 fields

This package is auto-updated.

Last update: 2026-06-08 19:41:50 UTC


README

This component allows you to automate many processes that occur in working with models, thereby reducing code duplication, and hence the total time spent:

  • Writing validation rules for fields of the same type
  • Writing Getters to Declare Various Relationships with Other Models
  • Validating and Editing Linked Records
  • Setting up the edit form for the model and its associated records
  • Customizing the Model Record List
  • Translating field names
  • Adds the ability to extend models by a third-party module without adding new dependencies
  • Simplifies the process of unit testing models

For license information check the LICENSE-file.

English documentation is at docs/guide/README.md.

Русская документация здесь docs/guide-ru/README.md.

👁 Latest Stable Version
👁 Total Downloads
👁 Build Status

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require execut/yii2-crud-fields

or add

"execut/yii2-crud-fields": "dev-master"

to the require section of your composer.json file.

Usage

For example, the following few lines of code in a model:

namespace execut\books\models;
class Book extends \yii\db\ActiveRecord {
 use \execut\crudFields\BehaviorStub;
 public function behaviors() {
 return [
 \execut\crudFields\Behavior::KEY => [
 'class' => \execut\crudFields\Behavior::class,
 'fields' => [
 'id' => [
 'class' => \execut\crudFields\fields\Id::class,
 ],
 'name' => [
 'class' => \execut\crudFields\fields\StringField::class,
 'attribute' => 'name',
 'required' => true,
 ]
 ],
 ],
 ];
 }
}

will make all required for CRUD:

$model = new Book();
echo 'Validation rules for the search and edit scenario';
var_dump($model->rules());
echo 'Forming ActiveQuery based on filtering parameters and configuring ActiveDataProvider';
var_dump($model->search());
echo 'Formation of list columns settings';
var_dump($model->getGridColumns());
echo 'Formation of settings for the creation/editing form';
var_dump($model->getFormFields());

👁 Books CRUD list
👁 Books CRUD form

If we compare the implementation of such a model with a model without extension, we can see that the amount of code has changed in a positive direction:

Model on native Yii2 (85 lines) vs Model on CRUD fields (36 lines)

Or more strong example with books authors:

Model on native Yii2 (370 lines) vs Model on CRUD fields (116 lines)

👁 Authors CRUD list
👁 Authors CRUD form

For more details please refer to the documentation docs/guide/README.md.

Для более подробной информации обращайтесь к документации docs/guide-ru/README.md.