エラー「syntax error, unexpected variable "$items"」の解消

実現したいこと

Laravelでトップページを表示しようとすると下記のエラーが表示されますのでエラーを解消したいです。
よろしくお願いします。

MainController.phpのindexメソッド「 $items = DB::select('select * from todoList order by id');」で
エラー:syntax error, unexpected variable "$items"

前提

Laravelでトップページを表示しようとするとエラーが表示されます。
(その前に更新処理を作成していて、MainController.phpのchangeメソッドを作成するとエラーが発生しました。)

動作の流れを下記に記載します。
①URL:「http://127.0.0.1/」にアクセス
②web.php Route::get('/', 'App\Http\Controllers\MainController@index');
③MainControllerのchangeメソッドの「 $items = DB::select('select * from todoList order by id');」で
エラー
→正解はindexメソッドがよばれなければいけないのに、なぜかchangeメソッドがよばれている?

発生している問題・エラーメッセージ

syntax error, unexpected variable "$items"

該当のソースコード

web.php

php

1<?php2 3use Illuminate\Support\Facades\Route;4 5 6//初期表示一覧画面7Route::get('/', 'App\Http\Controllers\MainController@index');8 9//新規登録入力画面10Route::get('/addInput', 'App\Http\Controllers\MainController@addInput');11//新規登録確認画面12Route::post('/addConfirm', 'App\Http\Controllers\MainController@addConfirm');13//新規登録実行14Route::post('/add', 'App\Http\Controllers\MainController@add');15 16//更新入力画面17Route::post('/changeInput', 'App\Http\Controllers\MainController@changeInput');18//更新確認画面19Route::post('/changeConfirm', 'App\Http\Controllers\MainController@changeConfirm');20//更新実行21Route::post('/change', 'App\Http\Controllers\MainController@change');

MainController.php

php

1<?php2 3namespace App\Http\Controllers;4 5use Illuminate\Support\Facades\DB;6use Illuminate\Http\Request;7 8class MainController extends Controller9{10 public function index() {11 $items = DB::select('select * from todoList order by id');12 13 return view('todo', ['items' => $items]);14 }15 16 public function addInput() {17 return view('addInput');18 }19 20 public function addConfirm(Request $request) {21 $item = [22 'id' => $request->id,23 'task' => $request->task,24 'priority' => $request->priority,25 'deadline' => $request->deadline,26 'manager' => $request->manager,27 'remarks' => $request->remarks28 ];29 return view('addConfirm', ['item' => $item]);30 }31 32 public function add(Request $request) {33 $param = [34 'task' => $request->task,35 'priority' => $request->priority,36 'deadline' => $request->deadline,37 'manager' => $request->manager,38 'remarks' => $request->remarks39 ];40 // dd($param);41 DB::insert('insert into todolist (task, priority, deadline, manager, remarks) 42 values (:task, :priority, :deadline, :manager, :remarks)', $param);43 44 $items = DB::select('select * from todoList order by id');45 return view('todo', ['items' => $items]);46 }47 48 public function changeInput(Request $request) {49 // dd($request);50 $id = $request->id;51 $param = ['id' => $id];52 // dd($param);53 $items = DB::select('select * from todoList where id = :id', $param);54 $item = $items[0];55 56 // dd($item);57 return view('changeInput', ['item' => $item]);58 }59 60 public function changeConfirm(Request $request) {61 $item = [62 'id' => $request->id,63 'task' => $request->task,64 'priority' => $request->priority,65 'deadline' => $request->deadline,66 'manager' => $request->manager,67 'remarks' => $request->remarks68 ];69 // dd($item);70 return view('changeConfirm', ['item' => $item]);71 }72 73 public function change(Request $request) {74 $param = [75 'task' => $request->task,76 'priority' => $request->priority,77 'deadline' => $request->deadline,78 'manager' => $request->manager,79 'remarks' => $request->remarks,80 'id' => $request->id81 ];82 dd($param);83 DB::update('update todoList set task = :task, priority = :priority 84 , deadline = :deadline, manager = :manager, remarks = :remarks where id = :id', $param)85 86 $items = DB::select('select * from todoList order by id');87 return view('todo', ['items' => $items]);88 }89}90

todo.blade.php

php

1<!DOCTYPE html>2<html>3 <head>4 <meta charset="UTF-8">5 <link rel="stylesheet" href="main.css">6 <title>初期表示一覧画面</title>7 <script>8 //勤務表編集選択画面でラジオボタン選択中は変更削除ボタンを有効にする9 //ラジオボタンを選択していないときは無効にする10 function check(){11 var flag = true; // 選択されているか否かを判定するフラグ12 13 //ラジオボタンの数だけ判定を繰り返す(ボタンを表すインプットタグがあるので1引く)14 for(var i=0; i < document.form.ids.length-1;i++){15 // i番目のラジオボタンがチェックされているかを判定16 if(document.form.ids[i].checked){ 17 flag = true;18 document.getElementById("henko").disabled = false;19 document.getElementById("sakujyo").disabled = false;20 } 21 }22}23</script>24 </head>25 <body>26 <h1>todoリスト</h1>27 <form name="form">28 <table border="1">29 @csrf 30 <tr>31 <th>選択</th>32 <th>No.</th>33 <th>タスク</th>34 <th>優先度</th>35 <th>期日</th>36 <th>担当者</th>37 <th>備考</th>38 </tr>39 @foreach ($items as $item)40 <tr>41 <td><input type="radio" name="id" id="ids" value="{{$item->id}}" onClick="return check()"></td>42 <td><input type="text" value="{{$item->id}}" readonly></td>43 <td><input type="text" value="{{$item->task}}" readonly></td>44 <td><input type="text" value="{{$item->priority}}" readonly></td>45 <td><input type="text" value="{{$item->deadline}}" readonly></td>46 <td><input type="text" value="{{$item->manager}}" readonly></td>47 <td><input type="text" value="{{$item->remarks}}" readonly></td>48 </tr>49 @endforeach50 </table>51 <button type="submit" formaction="addInput" formmethod="get">新規</button><button type="submit" formaction="changeInput" formmethod="post" name="henko" id="henko" disabled>更新</button><button type="submit" formaction="deleteConfirm" formmethod="post" name="sakujyo" id="sakujyo" disabled>削除</button>52 </form>53 </body>54</html>

試したこと

MainController.phpのchangeメソッドをすべて削除するとトップページが表示されます。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント