vtvz / yii2-extrelations
支持扩展ActiveRecord关系
dev-master / 0.2.0.x-dev
2016-05-12 20:17 UTC
Requires
This package is auto-updated.
Last update: 2024-08-29 04:05:13 UTC
README
这是一种扩展,可以轻松地在不同的ActiveRecord模型之间创建关系。
安装
安装此扩展的首选方式是通过composer。
可以运行
php composer.phar require --prefer-dist vtvz/yii2-relations
或者在您的composer.json的require部分中添加
"vtvz/yii2-relations": "*"
。
使用方法
vtvz\relations\Relations类是行为。
行为支持所有类型的连接,并允许方便地配置它们。
示例
<?php namespace common\models; use vtvz\relations\Relations; class Order extends Model { public function behaviors() { return [ 'relations' => [ 'class' => Relations::className(), 'relations' => [ /* many to many relation type */ 'items' => [ 'model' => Item::className(), 'link' => ['id' => 'itemId'], 'viaTable' => 'order_has_item', 'viaLink' => ['orderId' => 'id'], 'inverseOf' => 'orders', ], /* one (customer) to many (orders) relation type */ 'customer' => [ 'model' => Customer::className(), 'link' => ['id' => 'customerId'], 'type' => 'one', ], /* one to one relation type with delete */ 'orderInfo' => [ 'model' => OrderInfo::className(), 'link' => ['id' => 'id'], 'type' => 'one', 'delete' => true, ], /* many (somethings) to one (order) relation type. All somethings deletes with its order */ 'somethings' => [ 'model' => Something::className(), 'link' => ['orderId' => 'id'], 'type' => 'many', ] ], ], ]; } } ?>
注意
此扩展处于早期开发阶段。需要帮助覆盖扩展测试并创建规范文档。