2015-03-25 75 views
2

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

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

+0

可能是这篇文章的帮助为你https://github.com/samdark/yii2-cookbook/blob/master/book/ar-single-table-inheritance.md – 2015-03-25 12:36:15

回答

1

我能想出的唯一方法是对表格使用“全局变量” - 例如,在Yii中:: $ APP-> PARAMS [ 'ar_tables']和动态重新定义它们:

在CONFIG:

[ 
    .... 
    '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']的值以获取所需内容。我已经试过了。并不喜欢:)