短答
場合、ユーザーの卵をループ:
foreach($user->eggs as $egg){
$item = Item::find($egg->pivot->item_id);
}
照会する場合:
$user->eggs()->wherePivot('item_id', 1)->get();
長い答えに
From the Laravel Documentation
取得中間テーブルの列を
すでに学習しているように、多対多の関係で作業するには、中間テーブルが必要です。 Eloquentは、この表と対話するための非常に有用な方法を提供します。たとえば、Userオブジェクトに関連する多くのRoleオブジェクトがあるとします。この関係にアクセスした後、私たちはモデルにピボット属性を使用して中間テーブルにアクセスすることがあります。私たちは取得した各ロールモデルは自動的にピボット属性が割り当てられている
$user = App\User::find(1);
foreach ($user->roles as $role) {
echo $role->pivot->created_at;
}
注意してください。この属性には、中間テーブルを表すモデルが含まれており、他のEloquentモデルと同様に使用できます。
デフォルトでは、モデルキーのみがピボットオブジェクトに表示されます。あなたのピボットテーブルは、余分な属性が含まれている場合の関係を定義するとき、あなたはそれらを指定する必要があります。
return $this->belongsToMany('App\Role')->withPivot('column1', 'column2');
を使用すると、自動的に維持のcreated_atとupdated_atのタイムスタンプを持っているあなたのピボットテーブルをしたい場合は、関係定義にwithTimestampsメソッドを使用します。
return $this->belongsToMany('App\Role')->withTimestamps();
フィルタリングの関係を介して中間テーブルの列
あなたはまた、WHEを使用してbelongsToManyによって返される結果をフィルタリングすることができます関係を定義するときにrePivotメソッドとwherePivotInメソッドを使用します。
return $this->belongsToMany('App\Role')->wherePivot('approved', 1);
return $this->belongsToMany('App\Role')->wherePivotIn('priority', [1, 2]);
レコードをループするとき、またはクエリを実行したいときは、hatch_timeを使用しますか? –