pistol88/yii2-relations

该模块允许将任何模型绑定到任何模型(例如,相似商品等)

安装: 385

依赖项: 3

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 4

开放问题: 0

类型:yii2-extension

dev-master 2017-04-11 09:34 UTC

This package is auto-updated.

Last update: 2024-08-27 21:32:13 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()。

小部件

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

<?=\pistol88\relations\widgets\Constructor::widget(['model' => $model]);?>

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