Laravelで関係するモデルの情報を取得する

Task

2019年07月15日 18:11

Laravelでは関連するモデルを簡単に取得できるように`hasOne/hasMany`、`belongTo/belongToMany`といったメソッドがあります。 これらはEloquentで書かれたモデルクラスで取り出しやすいように、関連するモデル名でラップして使用します。 [Eloquent:リレーション 5.8 Laravel](https://readouble.com/laravel/5.8/ja/eloquent-relationships.html) 例えば1人のユーザが存在し、ユーザは個人の情報と、複数の端末を持っていることをモデル化するとUserとProfile、Deviceというモデルに分けられます。 UserとProfileは1対1の関係、Userは端末を複数持っている可能性があると考えるとUserとDeviceは1対多の関係になります。 userを取得したらuserと関連するprofileとdevicesを取得したいとなるとEloquentでは以下のように`hasOne/hasMany`メソッドをラップします。 ```php class User extends Model { public function profile() { return $this->hasOne(App\Profile::class); } public function devices() { return $this->hasMany(App\Device::class); } } ``` こうすることでuserから関連するprofileとdevicesを取得することができます。 多対多の場合は両方のモデルから`belongToMany`をラップすることで中間テーブルを通じて結果を返すことができます。
const content = document.getElementById('content'); content.innerHTML = marked(content.innerHTML.replace(/>/g, '>').replace(/</g, '

関連記事