前提・実現したいこと
Laravelでリレーション先のリレーション先の一覧を取得する方法をご教授願います。
ユーザーがいくつかボードを持っており、
ボードにはいくつかのカードがあり、
カードにはいくつかのコメントが付いています。
この時、あるユーザーに関連付けられているコメントの一覧を取得したいです。
モデルは以下のようになっています。
User.php public function boards() { return $this->hasMany("App\Models\Board"); }
Board.php public function user() { return $this->belongsTo("App\Models\User"); } public function cards() { return $this->hasMany("App\Models\Card"); }
Card.php public function board() { return $this->belongsTo("App\Models\Board"); } public function comments() { return $this->hasMany("App\Models\Comment"); }
Comment.php public function card() { return $this->belongsTo("App\Models\Card"); }
試したこと
現状、下記コードのようにBoardにgetCardsAttributeでCard情報を付与、CardにgetCardAttributeでComment情報を付与し、
コメントにアクセスをしています。
もっと良い方法が何かあるのでしょうか?
public function getMistake(Request $request) { $user = User::find($request->input("user_id"))->get()->first(); $boards = Board::where("user_id", "=", $user->id)->get(); return response()->json($boards); }
補足情報(FW/ツールのバージョンなど)
laravel 8.46.0
回答1件
あなたの回答
tips
プレビュー