Отношение многие ко многим из другого столбца, кроме id в Laravel - PullRequest
0 голосов
/ 27 сентября 2019

У меня две модели Project и StartYear У меня есть таблица project_technical_details, в которой содержится большая часть информации о проекте.Итак, я следую структуре таблицы в project_technical_details:

project_id    construction_start    construction_area   floors .....

Когда мы разрабатывали, мы сохраняли construction_start как год.т. е. он был жестко запрограммирован для ex 2012, 2013, 2019 и т. д. ... Теперь мы хотим установить связь, с помощью которой мы можем манипулировать данными, поэтому мы создали модель StartYear и имеем следующую структуру таблицы:

id   year  created_at   updated_at

поэтому в этой модели я определил отношения как:

public function projects()
{
    return $this->belongsToMany(
        'App\Project', 'project_technical_details', 'construction_start', 'project_id');
}

Но в этом случае я хочу связать столбец year, а не id.Как я могу этого достичь.Благодаря.

1 Ответ

0 голосов
/ 27 сентября 2019

Ваша сводная таблица должна выглядеть следующим образом:

|------------------------|
| year | project_id | ...|
|------------------------|

Тогда в вашей StartYear модели:

public function projects()
{
    return $this->belongsToMany(
        'App\Project', 'project_techinical_details', 'project_id', 'year'
    )
        ->whereColumn('project_techinical_details.construction_start', 'start_year.year');
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...