Хороший вопрос.
Вы должны поместить только два поля в таблицу notifications
. foreign_id
и log_type
.
Каждый раз, когда вы добавляете журнал, вы должны установить log_type
соответственно. Затем добавьте это отношение в вашу Notification
модель.
public function foreignModel()
{
switch($this->log_type){
case "call_log":
return $this->belongsTo('App\Call', 'foreign_id');
break;
}
}
Я не пробовал, но надеюсь, что она будет работать нормально.
Если вы ищете что-то более динамичное c и менее надежный, чем этот, тогда я не думаю, что он существует.