【问题标题】:Dynamically set the table name in a "has many" relation model在“有很多”关系模型中动态设置表名
【发布时间】:2014-10-24 06:40:48
【问题描述】:

在我的数据库架构中,我有多个表来保存对象的通用数据,例如,我有一个 user 表和一个 user_datapost 表和 post_data,等等。这些*_data 表都包含一个指向对象的外键和一对键值对。现在在我的 laravel 模型中,我想为这些表创建一个 data 模型(而不是每个表的模型),并以动态方式表示 has_many 关系,我可以通过某种方式定义表名父模型。我认为父模型会有类似的东西:

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

但我不知道如何表达反比关系,也不知道如何告诉 laravel 使用哪个 *_data 表。所以我的问题是,有可能吗?如果有,怎么做?

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    你有两个选择。

    为每个 data_* 表创建一个模型,并在数据表和用户表中使用$this->hasMany('data');$this->belongsTo('User'); 中所述的关系。

    或者你可以使用Polymorphic relations,我个人更喜欢多态关系的解决方案,更整洁。

    【讨论】:

      猜你喜欢
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多