【问题标题】:Laravel - morphToMany Custom KeysLaravel - morphToMany 自定义键
【发布时间】:2026-02-08 05:30:02
【问题描述】:

我正在尝试转换和清理一个项目,该项目有太多执行类似功能的表和类。我将逐类清理代码并刷新函数,但我需要帮助的一件事是 morphToMany 函数的自定义键。

目前,我有一个名为osd_detail的类,它具有以下关系:

public function attachments(){
    return $this->morphToMany(ClaimAttachment::class, 'attachable');
}

然后如您所见,我还有一个名为ClaimAttachment 的课程。好吧,我有一个 attachables 表,其结构如下:

  • attachment_id
  • attachable_id
  • attachable_type

但此刻,当我去测试它时,它仍在寻找claim_attachment_id。目前,我更愿意为此实例更改外键。我不确定我是否走在正确的轨道上,并且会感谢任何人提供的任何帮助。

非常感谢!

【问题讨论】:

    标签: laravel laravel-5 polymorphic-associations


    【解决方案1】:

    将自定义外键作为第五个参数传递:

    public function attachments(){
        return $this->morphToMany(
            ClaimAttachment::class, 'attachable', null, null, 'attachment_id'
        );
    }
    

    【讨论】: