Отношение 3 таблицы (Laravel 5.7) - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть 3 таблицы, как это изображение. Я хочу получить уточнять питомца с расы и получить владельца этого питомца. Как я могу получить все три записи от домашних животных.

enter image description here

У меня есть попытка

Домашние животные :: найти ($ ID) -> расы () -> с (пользователей) -> получаем ();

public function users()
{
    return $this->hasMany('App\User', 'id');
}

public function races()
{
    return $this->hasMany('App\Races', 'id', 'id');
}

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Обычно, когда у вас есть [что-то] _id, это означает, что строка принадлежит другой строке.

Измените отношения в вашей Pets модели на:

public function user()
{
    return $this->belongsTo('App\User');
}

public function race()
{
    return $this->belongsTo('App\Races');
}

Затем, чтобы получить user и race, вы можете сделать:

Pets::with('user', 'race')->find($id);

или поскольку вы загружаете только один Pet, вы можете просто сделать:

$pet = Pets::find($id);

и у вас все равно будет доступ к $pet->user и $pet->race.

0 голосов
/ 13 сентября 2018

если у вас есть модель домашних животных, которую вы должны добавить, принадлежат пользователю, а также принадлежат pets_reces в ней

и попробуйте Pets::find($id)->races; или Pets::find($id)->users;

Другой способ - получить идентификатор пользователя или идентификатор расы, а затем получить от него всех питомцев без создания модели для питомцев, чтобы вы могли добавить принадлежность ко многим пользователям и расам.

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