본문 바로가기
MySql

MySQL 두 개의 외래 키, laravel eloquent로 매핑하는 방법

by 베이스 공부 2020. 12. 3.
반응형

MySQL에는 두 개의 테이블이 있는데, 첫 번째 테이블은 사용자이고 두 번째 테이블은 게임입니다. 테이블 구조는 다음과 같습니다.

사용자

게임

내 게임 테이블은 두 명의 사용자와 두 가지 외교 관계를 유지하고 있습니다.


예를 들어

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');
}

수정 사용자 deczo가 제안한대로 '게임'을 '게임'으로 변경했습니다.

 

참조 페이지 https://stackoverflow.com/questions/25061687

 

 

반응형

댓글