>假设我有一个通知表,当从另一个表生成新日志时会生成该表。假设我有 3 个具有不同用途的不同日志,即:sms_logs、call_logs 和appointment_logs。
我想在不使用sms_logs_id、call_logs_id和appointment_logs_id的情况下与每个日志建立关系。相反,我只想构建两列,一列用于类型,另一列用于 ID。因此,例如生成一个 id 为 187 的 sms 日志,它还将生成一个notification_id为 187 和一种"短信"类型的通知日志。
我将如何创建它?谢谢!
好问题。
您只需notifications
表中放置两个字段。foreign_id
和log_type
.
每当添加日志时,都必须相应地设置log_type
。然后在Notification
模型中添加此关系。
public function foreignModel()
{
switch($this->log_type){
case "call_log":
return $this->belongsTo('AppCall', 'foreign_id');
break;
}
}
我没有尝试过,但希望它能正常工作。
如果你正在寻找比这更动态和更不强大的东西,那么我认为它不存在。