2014-08-30 80 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,我个人更喜欢多态关系解决方案,比较整齐。