vtvz/yii2-extrelations

支持扩展ActiveRecord关系

安装: 16

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 3

分支: 0

开放性问题: 0

类型:yii2-extension

dev-master / 0.2.0.x-dev 2016-05-12 20:17 UTC

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',
                    ]
                ],
            ],
        ];
    }
}
?>

注意

此扩展处于早期开发阶段。需要帮助覆盖扩展测试并创建规范文档。