Yii2如何动态创建模型并指定它们之间的关系?

时间:2015-03-25 11:09:42

标签: yii2 yii2-advanced-app

我正在动态创建表格。如果我创建表格学校课程。如何为它们创建模型并指定它们之间的关系。

我搜索了但没有得到关于这个主题的任何内容。任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

我能弄清楚的唯一方法是使用"全局变量"对于表格 - 例如在Yii :: $ app-> params [' ar_tables']并动态重新定义它们:

在配置中:

[
    ....
    'params' => [
         'ar_tables' => [
             'Parent' => 'parent',
             'Child' => 'table2' 
         ]
    ]
    ....
]

家长班:

class Parent extends \yii\db\ActiveRecord
{

    public static function tableName()
    {
        return Yii::$app->params['ar_tables']['Parent'];
    }


    public function getChildren
    {
        return self::hasMany(Child::className(), ['parent_id' => 'id']);
    }
}

儿童班:

class Child extends \yii\db\ActiveRecord
{

    public static function tableName()
    {
        return Yii::$app->params['ar_tables']['Child'];
    }


    public function getParent
    {
        return self::hasOne(Parent::className(), ['id' => 'parent_id']);
    }   
}

之后,您可以动态更改Yii :: $ app-> params [' ar_tables']值,以获得您想要的内容。我已经试过了。并且不喜欢:))