1

質問テーブル内のを使用して、テーブルから
のマッチングを取得したいと考えています。空室状況はすでにと の間のピボット テーブルです。scheduleavailabilityshift_idavailabilities
usersshifts

hasOneThrough 関係がここに行く方法だと思いましたが、うまくいかないようです。
私は何を間違っていますか?

テーブル

空室状況
- id
- user_id
- shift_id
- ...

シフト
- ID
- スケジュールID -
...

スケジュール
- ID
- ...

可用性モデル

 public function schedule()
{
    return $this->hasOneThrough(
        'App\Schedule',
        'App\Shift',
        'schedule_id',
        'id',
        'shift_id',
        'id'
    );
}

問題 どういうわけか、PHP Artisan Tinker を使用すると、shift.id の ID を持つスケジュールではなく、Availability.id の ID を持つスケジュールを取得します。このスケジュールは存在しないため、

$availability = App\Availability::find(1331);
$availability→schedule()→get();
Illuminate\Database\Eloquent\Collection {#3111
all: [],
}

4

2 に答える 2