сакхлаб/yii2-relations

该模块允许将任何模型关联到任何模型(例如,类似商品等)

安装: 2

依赖: 0

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 4

类型:yii2-extension

dev-master 2017-04-03 05:57 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:00:55 UTC


README

该模块提供了快速添加模型之间关联功能。使用示例:关联类似产品。

安装

执行命令

php composer require pistol88/yii2-relations "*"

或在 composer.json 中添加

"pistol88/yii2-relations": "*",

然后执行

php composer update

连接和配置

在应用程序配置文件中添加模块 relations

    'modules' => [
        //..
        'relations' => [
            'class' => 'pistol88\relations\Module',
            'fields' => ['code'],
        ],
        //..
    ]

*fields - 额外字段数组(默认情况下,选择窗口只显示 id 和名称)

使用

关联存储在单独的 TEXT 字段中,形式为序列化数组,需要在模型中创建并添加字段。将实现 \pistol88\relations\interfaces\Torelate 且继承 AR 的模型连接行为

    function behaviors()
    {
        return [
            'relations' => [
                'class' => 'pistol88\relations\behaviors\AttachRelations',
                'relatedModel' => 'common\models\Product',
                'inAttribute' => 'relations',
            ],
        ];
    }

    public function getName()
    {
        return $this->name;
    }
    
    public function getId()
    {
        return $this->id;
    }
  • inAttribute - 模型中存储关联的字段名称
  • relatedModel - 需要关联的模型

现在可以通过方法 $model->getRelations()->all() 获取关联的模型。

小部件

通过小部件选择要连接的模型

$model]);?>

它需要在编辑模型表单内调用。