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.
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.
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());
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)
For more details please refer to the documentation docs/guide/README.md.
Для более подробной информации обращайтесь к документации docs/guide-ru/README.md.