質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

835閲覧

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

hfuob

総合スコア9

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2023/10/07 04:16

実現したいこと

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<?php 2 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<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Support\Facades\DB; 6use Illuminate\Http\Request; 7 8class MainController extends Controller 9{ 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->remarks 28 ]; 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->remarks 39 ]; 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->remarks 68 ]; 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->id 81 ]; 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 @endforeach 50 </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/ツールのバージョンなど)

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

php

1 DB::update('update todoList set task = :task, priority = :priority 2 , deadline = :deadline, manager = :manager, remarks = :remarks where id = :id', $param) 3 4 $items = DB::select('select * from todoList order by id');

直前の行のセミコロンが抜けているため、次の$itemsが文法的に矛盾してしまっています。

投稿2023/10/07 06:39

maisumakun

総合スコア146544

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hfuob

2023/10/07 07:22

ありがとうございます。解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問