2014-08-30 100 views
0

在我的數據庫架構設置的表名,我有持有對象的通用數據的多個表,比如我有一個user表和user_datapost表和post_data等。這些*_data表全部持有一個外鍵給對象和一對鍵值。現在在我的laravel模型中,我希望爲這些表(而不是每個模型)提供一個data模型,並以動態方式表示has_many關係,以某種方式我可以根據父模型定義表名。我覺得家長的模型應該是這樣的:動態的「有很多」關係模型

return $this->hasMany('data'); 

,但我不知道該如何表達的反比關係,也不怎麼跟laravel使用哪個*_data表。所以我的問題是,這可能嗎?如果是這樣,怎麼樣?

回答

1

你有兩種選擇。

爲每個data_ *表創建一個模型,並在數據表和用戶表中使用$this->hasMany('data');$this->belongsTo('User');中指定的關係。

或者您可以使用Polymorphic relations,我個人更喜歡多態關係解決方案,比較整齊。