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`をラップすることで中間テーブルを通じて結果を返すことができます。