LoginSignup
0
0

More than 1 year has passed since last update.

Laravel8 hasManyThroughの使い方

Posted at

Lrravelの学習中、hasManyThroughを使う機会があったので備忘録としてここに残す。

使用例

例えばあるユーザーが書いた記事にされているブックマークを取得したい場合、関係性は以下になる。

User→Article→Bookmark

ここではそれぞれ、Userを始点、Articleを中継先、Bookmarkを取得先とし、以下の記述となる。

//Userモデル内
    public function getBookmarked()
    {
        return $this->hasManyThrough(
            'App\Models\Bookmark',  //取得先
            'App\Models\Article',   //中継先
            'author_id',    //始点と中継先をつなぐ外部キー
            'article_id',   //中継先と取得先をつなぐ外部キー
            'id',   //始点の主キー(省略可)
            'id'    //中継先の主キー(省略可)
        );
    }

第5、第6引数は主キー名が'id'なら省略出来る。よってこれらの引数を入れるのは主キー名を変えている場合のみ。


初心者のため、内容に相違あればコメント下さい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0