環境
Laravel v9.5.1 (PHP v8.1.3)
外部キーがデフォルトでないリレーション定義
通常はEloquent
がGiftHistory
モデルにuser_id
カラムがあると想定するが、
今回のように外部キーがデフォルトと違う場合は、belongsTo
メソッドの2番目の引数としてカスタムキー名を渡す。
app/Models/GiftHistory.php
public function giver(): BelongsTo
{
return $this->belongsTo(User::class, 'giver_id');
}
public function receiver(): BelongsTo
{
return $this->belongsTo(User::class, 'receiver_id');
}
コンソールで実行するとリレーションで取得できるようになる。
GiftHistory::first()->giver()
=> Illuminate\Database\Eloquent\Relations\BelongsTo
GiftHistory::first()->receiver()
=> Illuminate\Database\Eloquent\Relations\BelongsTo
参考