0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelのモデルのリレーション【個人的なお勉強アウトプット】

Last updated at Posted at 2022-04-08

参考図書

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テーブルのレコードを取ってこれる。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?