【Laravel】Modelのリレーション1人勉強会①【PHP】
ER図は以下のツールを使いました。とても便利でした。無料です。
Flowchart Maker & Online Diagram Software
1対1のリレーション hasOne()
イメージはこんな感じ
Tweet_userモデルでTweet_contentを用意する
public function Tweet_content()
{
return $this->hasOne('App\Tweet_content');
}
このようにすることでプロパティにアクセスする感覚でリレーション先の値を得ることができる。
Tweet_content()と定義したが、以下のように()はいらない。
Tweet_user::find(1)->Tweet_content->tweet
1対 多 hasMany()
イメージはこんな感じ
ユーザーが複数のツイートをしている状態。
Tweet_userモデルでTweet_contentを用意する。
public function Tweet_content()
{
return $this->hasMany('App\Tweet_content');
}
controllerで以下のようにして
$data = Tweet_user::find(1);
return view('home',compact('data'));
view側でこんな感じで利用できる。
@foreach ($data->Tweet_content as $item) <p>{{ $item->tweet }}</p> @endforeach