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