alekciy/yii2-save-autorelations-behavior

Auto create relations, validate and save automatically related Active Record models.

0.1.1 2020-02-10 21:42 UTC

This package is auto-updated.

Last update: 2024-04-16 04:01:21 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