dvizh/yii2-relations

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

安装次数: 1,644

依赖者: 2

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2018-03-09 11:59 UTC

This package is not auto-updated.

Last update: 2024-09-24 17:28:35 UTC


README

该模块提供快速添加模型间关联功能。示例:绑定相似产品。

安装

执行以下命令

php composer require dvizh/yii2-relations "@dev"

或在 composer.json 中添加

"dvizh/yii2-relations": "@dev",

然后执行

php composer update

连接和配置

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

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

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

使用方法

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

    function behaviors()
    {
        return [
            'relations' => [
                'class' => 'dvizh\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() 方法返回关联模型。

小部件

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

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

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