2015-03-25 77 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']的值以獲取所需內容。我已經試過了。並不喜歡:)