У меня есть две таблицы в MySQL, где первая называется пользователями, а вторая называется играми. Структура таблицы следующая.
пользователи
игры
Моя таблица игр содержит два внешних отношения для двух пользователей.
Мой вопрос в том, как я могу сделать отношения модели для этой структуры таблицы? – Согласно документации laravel , я должен сделать функцию внутри модели и связать ее с ее отношениями
например
public function users() { $this->belongsTo('game'); }
однако я не могу найти ничего в документации, рассказывающей мне, как иметь дело с двумя внешними ключами. как в моей структуре таблицы выше.
Надеюсь, ты поможешь мне по пути сюда.
спасибо
Миграция:
$table->integer('player1')->unsigned(); $table->foreign('player1')->references('id')->on('users')->onDelete('cascade'); $table->integer('player2')->unsigned(); $table->foreign('player2')->references('id')->on('users')->onDelete('cascade');
И модель:
public function player1() { $this->belongsTo('Game', 'player1'); } public function player2() { $this->belongsTo('Game', 'player2'); }
EDIT изменил «игру» на «Игру», как предложил пользователь deczo.
К сожалению, способ, которым у вас есть эта настройка, вряд ли будет работать в текущем контексте. Возможно, вам больше повезло с методом belongsTo, но опять же, что поддерживает только одно отношение.
Вы можете реализовать user1 () принадлежит Too, принадлежит user2 () и, наконец, просто объявить не-красноречивую функцию для возврата обоих (что-то вроде $ users = array ($ this-> user1 (), $ this-> user2 ())