前提・実現したいこと
PHPフレームワーク Laravel入門を読んで、laravelの開発を行なっています。
80ページの3章のリスト3-21 3-22を行なったところ、エラーメッセージが発生しました。
発生している問題・エラーメッセージ
ErrorException (E_ERROR) Invalid argument supplied for foreach() (View: Desktop/laravelapp/resources/views/hello/index.blade.php) Previous exceptions
エラーの「Invalid argument supplied for foreach() …」について
配列の形式ではない変数でforeach文を実行しようとしているエラーであることは、
理解できています。
エラーはPhpEngine.phpで起きており、
自分のファイルに記述ミスらしきものが見当たらないため、原因について分からないで困っています。
それまでの3-20までは問題なく表示されていました。
本の誤植なども確認しましたが、見当たりませんでした。
何かおかしなところがあればご教授願います。
よろしくお願いします。
該当のソースコード
/Desktop/laravelapp/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php
lluminate\View\Engines\CompilerEngine handleViewException …/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php45
落ちている該当ファイル
php
1 try { 2 include $__path; 3 } catch (Exception $e) { 4 $this->handleViewException($e, $obLevel); 5 } catch (Throwable $e) { 6 $this->handleViewException(new FatalThrowableError($e), $obLevel); 7 }
の
$this->handleViewException($e, $obLevel);
になります。
自分が記述したファイル
php
1index.blade.php 2<body> 3 <h1>Blade/Index</h1> 4 <p>foreachディレクティブの例</p> 5 <ol> 6 @foreach ($data as $item) 7 <li>{{$item}} 8 @endforeach 9 </ol> 10</body> 11
自分が記述したファイル
php
1HelloContoroller.php 2 3<?php 4 5namespace App\Http\Controllers; 6 7use Illuminate\Http\Request; 8use Illuminate\Http\Response; 9 10class HelloController extends Controller 11{ 12 13 14public function index() 15{ 16 $data =['one','two','three','four','five']; 17 return view('hello.index',['data'=>'$data']); 18} 19 20public function post(Request $request) 21{ 22 return view('hello.index',['msg'=>$request->msg]); 23} 24 25}; 26
試したこと
以下について確認しました。
https://kotori-blog.com/php/foreach_error/
https://www.poroanet.com/blog/php/251.html
https://laravel.com/api/4.2/Illuminate/View/Engines/CompilerEngine.html
https://www.shuwasystem.co.jp/support/7980html/5258.html
補足情報(FW/ツールのバージョンなど)
macOX
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。