dvizh / yii2-relations
该模块允许将任何模型绑定到任何模型(例如 - 相似商品等)
dev-master
2018-03-09 11:59 UTC
Requires
- php: >=5.4.0
- kartik-v/yii2-widget-fileinput: *
- newerton/yii2-fancybox: dev-master
- yiisoft/yii2: *
- yiisoft/yii2-bootstrap: *
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]);?>
需要在您的模型编辑表单内部调用它。