два внешних ключа, как составить карту с красноречивым ларавелем

У меня есть две таблицы в MySQL, где первая называется пользователями, а вторая называется играми. Структура таблицы следующая.

пользователи

  • id (первичный)
  • Эл. адрес
  • пароль
  • настоящее имя

игры

  • id (первичный)
  • user_one_id (иностранный)
  • user_one_score
  • user_two_id (иностранный)
  • user_two_score

Моя таблица игр содержит два внешних отношения для двух пользователей.

Мой вопрос в том, как я могу сделать отношения модели для этой структуры таблицы? – Согласно документации 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 ())