Laravel - пользовательские ключи morphToMany - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь преобразовать и очистить проект, в котором слишком много таблиц и классов, выполняющих аналогичные функции.Я собираюсь класс за классом, чтобы очистить код и обновить функции, но одна вещь, в которой мне нужна помощь, это пользовательские ключи для функции morphToMany.

В настоящее время у меня есть класс с именем osd_detailи он имеет следующие отношения:

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

И затем, как вы можете видеть, у меня есть другой класс с именем ClaimAttachment.Ну, у меня есть таблица attachables со следующей структурой:

  • attachment_id
  • attachable_id
  • attachable_type

Но на данный момент, когда я иду, чтобы проверить это, он все еще ищет Claim_attachment_id.На данный момент я бы предпочел изменить внешний ключ для этого экземпляра.Я не уверен, что нахожусь на правильном пути и был бы признателен за любую помощь, которую кто-либо может оказать.

Большое вам спасибо!

1 Ответ

0 голосов
/ 26 декабря 2018

Передайте пользовательский внешний ключ в качестве пятого аргумента:

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