エラーの内容
エラーの概要
エラーを直訳すると、プロパティが未定義という意味。
今回はDB:selectメソッドで取得した値を表示しようとしたら、DBのテーブルのカラムに存在しない名前を使っていたため、エラーになっていた。
原因の確認
DBのカラム名と、bladeやコントローラーで使ってるカラム名が完全一致かどうか確認すること。
また、大文字、小文字も区別するので、それも確認。
エラーの例
コントローラー
public function index(){
$items = DB::select('select * from emp where age = 20');
return view('index', ['items' => $items]);
}
テンプレート
@foreach ($items as $item)
<table>
<tr>
<td>id:{{$item->ID}}</td>
<td>name:{{$item->name}}</td>
<td>age:{{$item->age}}</td>
</tr>
</table>
@endforeach
上記のselectを実行して、データを取得しようとしたが、DBのカラム名は小文字のidであるにもかかわらず、テンプレートで大文字指定をしていたため、名前違いとなりエラーとなった。