laravelでレイアウトを利用したページの作成を行っています。
ブラウザはchrome 記述はVscodeを使っています。
ページを表示しようとした際、次のようなエラーが発生しました。
Undefined offset: 1
http://localhost:8000/cake
C:\Users\fghjz.LAPTOP-VM64TKHN\Desktop\laravelapp\vendor\laravel\framework\src\Illuminate\View\Compilers\Concerns\CompilesLoops.php line95
* @param string $expression * @return string */ protected function compileForeach($expression) { preg_match('/( *(.*) +as *(.*))$/is', $expression, $matches); $iteratee = trim($matches[1]); $iteration = trim($matches[2]); $initLoop = "$__currentLoopData = {$iteratee}; $__env->addLoop($__currentLoopData);"; $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();'; return "<?php {$initLoop} foreach($__currentLoopData as {$iteration}): {$iterateLoop} ?>";
$iteratee = trim($matches[1]);の部分がエラーの発生源と出ています。
よく分からないところがエラー発生源になってたので検索したのですが、同じような例が見当たらず困っています。
web.php Controller.php ベースレイアウト その継承先の記述を書きに載せておきます。
web.php
web.php
1Route::get('cake', 'PancakeController@index');
↓PancakeController.php
PancakeController.php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7class PancakeController extends Controller 8{ 9 public function index(){ 10 11 $data = ['ああああ','いいいい','うううう']; 12 13 14 return view('cake.index', ['data'=>$data]); 15 } 16} 17
↓cake.blade.php
cake.blade.php
1<html> 2<head> 3<title>Paンcaク</title> 4<head> 5<style> 6body{background-color:#ffdead } 7h1 { 8 text-align:center; font-size:90px; color:#800000; margin-top: 50px; border:solid 3px; border-radius: 25px; 9} 10h2{ 11 text-align:center; font-size:40px; color:#f4a460; margin-top:80px; 12} 13ul{ 14 margin-top:0px; margin-left:50px; margin-bottom:90px; color:#fa8072; 15} 16li{ 17 font-size:30px; margin-bottom:20px; 18} 19.P{ 20 font-size:40px; margin-bottom:10px; margin-left:-30px; 21 font: bold; color:#ffa07a; 22} 23</style> 24</head> 25<body> 26<h1>@yield('title')</h1> 27 28 <div id="name"> 29 30 <h2>@yield('name')</h2> 31 32 <section class="point"> 33 <p class="P">Point</p> 34 <ul> 35 @yield('point') 36 </ul> 37 </section> 38 39 <section class="end"> 40 <p>Access</p> 41 </section> 42 43 </div> 44</body> 45</html>
↓index.blade.php
@extends('layouts.cake') @section('title', 'パン日記') @section('name', '衝撃の濃厚さを誇るメロンパン!!') @section('point') @foreach($data as $A) <li>{{$A}}</li> @endforeach @endsection
index.blade.phpの記述に@foreach以下が記述される前はしっかり表示されていたので、ファイル配置に間違いはないと思います。
少しひっかかるのは@foreach以下が記述される前はしっかり表示されていたので、その状態に戻したのですが同じエラーが出ることです。
同じ記述なのに再起動するとしっかり表示されるということが今まで時々あったのであまり気に留めていませんが。
なぜ操作していないファイル上でのエラーが発生しているのでしょうか?
アドバイスいただければ幸いです。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/29 12:00
2022/09/20 06:17