alekciy/yii2-save-autorelations-behavior

自动创建关系、验证并自动保存相关Active Record模型。

0.1.1 2020-02-10 21:42 UTC

This package is auto-updated.

Last update: 2024-09-16 04:48:02 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页面查看