Как записать красноречивое отношение для одной таблицы к другой таблице двумя столбцами? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь объединить две колонки с таблицей.

Вот моя структура таблицы для таблицы задач

| id           | assigned_by    | assigned_to   |
| :---         |     :---:      |          ---: |
| 1            | 1              | 2             |
| 2            | 1              | 3             |

Вот структура таблицы таблицы пользователей.

| id           | name           | email         |
| :---         |     :---:      |          ---: |
| 1            |varun           | me@gmail.com  |
| 2            |mark            | mark@gmail.com|

Я попробовал приведенный ниже код в Task Class, он не работал

public function user()
{
    return $this->belongsTo(User::class);
}

1 Ответ

2 голосов
/ 02 апреля 2020

Eloquent автоматически определит правильный столбец внешнего ключа в модели пользователя. По соглашению, Eloquent примет "случай змеи" имя модели-владельца и добавит суффикс _id . Так, для вашего примера, Eloquent будет предполагать, что внешний ключ в модели User равен user_id.

Однако ваш внешний_ключ имеет значения assigned_by и assigned_to, поэтому вам нужно указать foreign_key:

public function assignedUser()
{
    return $this->belongsTo(User::class, 'assigned_to');
}

public function assignedByUser()
{
    return $this->belongsTo(User::class, 'assigned_by');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...