whereとget()を使ってデータベースから値を取得したときは【複数形】として扱わねばなりません。
たとえ「絶対に値は1個しか入っていないっ」という時にも^^;
解決法は次の2つです。
- getではなくfirstを使う
- foreachを使ってひとつずつの要素にばらしてから使う
whereとget()メソッドで値を取ったら、エラーが出る時の対策
たとえば、次のようにしてデータを取得するとします。
$test=Test::where(‘id’, $user->id)->get();
条件に該当する要素は1個だけのハズですが、このまま処理をすすめると、次のようなエラーになります。
Property [id] does not exist on this collection instance.
getではなくfirstを使う
次のようにfirstを使ってみてください。
$test=Test::where(‘id’, $user->id)->first();
条件に合う一番最初の要素をとってきてくれます。
当然、単数扱いで大丈夫です。
foreachを使ってひとつずつの要素にばらしてから使う
foreachで1個ずつの要素にばらしてから、処理を行う方法もあります。
@foreach($test as $te)
処理を記述
@endforeach
処理を記述
@endforeach
エラーが起こった場合には、「Laravel側ではこれを単数と思っている?複数と思っている?」
と考えてみてください。←経験則^^;