alekciy / yii2-save-autorelations-behavior
Auto create relations, validate and save automatically related Active Record models.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 1
Type:yii2-extension
Requires
Requires (Dev)
- ext-sqlite3: *
- phpunit/phpunit: 4.8.36
This package is auto-updated.
Last update: 2025-02-16 05:50:41 UTC
README
Данное поведение расширяет yii2-save-relations-behavior автоматически создавая связи на основании заданной конфигурации.
Установка
Через composer:
composer require --prefer-dist alekciy/yii2-save-autorelations-behavior
Конфигурирование
В модель нужно лишь дописать связанную с ней другую модель. Для связи 1-n в свойство manyRelationList
, для 1-1 в oneRelationList
.
Например, нужно добавить в класс машины Car
связь с водителями Driver
:
use yii\db\ActiveRecord; use alekciy\Yii2SaveAutoRelationsTrait; use alekciy\Yii2SaveAutoRelationsBehavior; class Car extends ActiveRecord { use Yii2SaveAutoRelationsTrait; // Необязательно, но нужно для загрузки связи через loadRelations() public function behaviors() { return [ 'saveRelations' => [ 'class' => Yii2SaveAutoRelationsBehavior::className(), 'manyRelationList' => [ 'drivers' => Driver::class, ], ], ]; } }
Вот и все. Не нужно создавать getDrivers()
метод. Поведение автоматически создаст таблицу связей (имя начинается с
префикса link__
). С остальными вариантами использования можно ознакомиться на странице
Yii2 Active Record Save Relations Behavior