【发布时间】:2021-06-18 18:51:14
【问题描述】:
我有一个用户和一个活动表。一个用户可以有很多活动,一个活动属于一个用户。
用户
id | name | email
活动
id | subject_type | subject_id | description
我无法为活动创建 belongsTo 关系,因为它依赖于 2 列。用户 ID 存储在 subject_id 活动表中,主题类型 = 用户模型。所以它看起来像这样:
id | subject_type | subject_id | description
1 | App\Models\User | 2 | some description ...
现在我想出了:
活动模型
public function user()
{
return $this->belongsTo(User::class, 'subject_id')
->where('subject_type', User::class);
}
但这是错误的,因为 subject_type 在活动列中。
【问题讨论】: