【Laravel】Attempt to read property “hoge” on int
今回は「Attempt to read property 」についての紹介です。
目次
Attempt to read property “hoge” on intの原因
整数値などのプリミティブなデータ型に対してオブジェクトプロパティを読み取ろうとしていることを示しています。
整数値を使ってオブジェクトのようにプロパティにアクセスしているからです。
Controllerのコード
$id = 1;
$userData = $getUserDataUsecase->execute($id);
return view('user')->with([
'userData' => $userData
]);
この例で「Attempt to read property “hoge” on int」が発生しているとすると、$getUserDataUsecase->execute($id)
の戻り値が、オブジェクトや配列ではなく整数を返していることが原因です。
Attempt to read property “hoge” on intの解決方法
Controllerのコード
$getUserDataUsecase->execute($id)
の返り値を確認:- 配列を返すことを確認。
$id
が有効であることを確認:$id
が整数の型であることを確認。
$id = 1;
$userData = $getUserDataUsecase->execute($id);
return view('user')->with([
'userId' => $userData->id,
'userName' => $userData->name,
]);
スポンサードサーチ
Attempt to read property “hoge” on intの解決の例
データベースから取得した配列を、配列のままViewへ渡し、Viewで表示するときに発生することがあります。
※自分はView componentに値を渡してViewでループ時で発生しました。
Controllerのコード
$id = 1;
$userData = $getUserDataUsecase->execute($id);
return view('user')->with([
'userId' => $userData->id,
'userName' => $userData->name,
]);
Viewのコード
<div>
<p>{{$userId}</p>
<p>{{userName}}</p>
</div>
実装やエラーが解決できない場合
プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。
考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。
そういう時は聞ける先輩や、メンターに相談することが大事です。
僕にも相談可能なので気軽に相談してください。
Twitterからの連絡だと確実ですよ。
オンラインスクールやプログラミングスクールといったプログラミングを学べる方法もあるので、そちらもぜひ活用してもいいと思います。
Web開発で分からない時
オンライン完結型スクール DMM WEBCAMP PROアプリ開発で分からない時
プログラミング×稼げる副業スキルはテックキャンププログラミングについて分からない時
【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。僕への個人でもメンターでも、スクールでもお好きな方を活用ください。