参考図書
hasOne
1対1の関係で関連付けられているもの。
主従のリレーションテーブルで、主の方から従テーブルを取得するための機能。
app/Models/Person.php
public function board(){
return $this->hasOne('App\Models\Blard');
}
引数でhasOneで関連付けられるモデルを指定する。
これによりpeopleテーブルのレコードに関連付けをおこなったboardsテーブルのレコードが取り出せるようになる。
hasMany
1対多の関係で関連付けられているもの。
app/Models/Person.php
public function board(){
return $this->hasMany('App\Models\Blard');
}
ビューの取り出し方
resources/views/person/index.blade.php
@foreach($items as $item)
{{$item->getData()}}
@if($item->boards != null)
@foreach($item->boards as $obj)
{{$obj->getData()}}
@endforeach
@endif
@endforeach
belongsTo
従から主のレコードを取り出す。
基本的には一つのレコードだけが取り出される。
app/Models/Board.php
public function person()
{
return $this->belongsTo('App\Models\Person');
}
public function getData()
{
return $this->id . ': ' .$this->title . '(' . $this->person->name . ')';
}
belongsToすることによって$this->person->name
としてつないだpersonモデルからpeopleテーブルのレコードを取ってこれる。