データベースからのデータ取得方法の違い
Eloquentを使ったデータベースからのデータ取得をしてViewにて表示させようとした際に
// UserController.php
public function index()
{
$user = User::where('use_id', 1)->get();
return view('users.index', compact('user'));
}
//users/index.blade.php
<h1>{{ $user->user_id }}</h1>
エラーメッセージ「プロパティ [user_id] はこのコレクション インスタンスに存在しません。」が表示される。
これは$userがコレクション(配列)であり、単一のオブジェクトではないためで、いままでgetメソッドは取得の際に単一オブジェクトを返すものと思っていた・・・
// UserController.php
public function index()
{
$user = User::where('use_id', 1)->first();
return view('users.index', compact('user'));
}
get
からfirst
メソッドに変更することで単一オブジェクトとして取得。
メソッド使用の際は取得形をよく確認して行うこと。