##現状・お願い
現在、DBデータの削除機能を作成しています。
削除ボタンを押すと削除されるといった機能なのですが、ボタンを押すとエラーが出てしまいます。
ただしブラウザから戻るボタンを押してみると、DBのデータは削除されています。
このエラーメッセージを出さないようにするにはどのようなコードが必要か教えていただけますと幸いです。
##エラーコード
Trying to get property 'id' of non-object
(View: /home/ec2-user/environment/invoice_and_todo/resources/views/todo/editItem.blade.php)
###TodoController(一部抜粋)
php
1 // 案件情報の追加・更新・削除 2 public function addNewItem(Request $request){ 3 $item = new Item(); 4 $item->user_id = Auth::user()->id; 5 $item->client_id = $request->client_id; 6 $item->item_name = $request->item_name; 7 $item->delivery_date = $request->delivery_date; 8 $item->unit_price = $request->unit_price; 9 $item->states = $request->states; 10 $item->memo = $request->memo; 11 $item->save(); 12 13 return redirect('/addItem'); 14 } 15 public function editItem($id){ 16 $list = Item::find($id); 17 return view('todo.editItem', compact('list')); 18 } 19 public function updateItem(Request $request, $id){ 20 $item = Item::where('id', '=', $request->id)->first(); 21 $item->user_id = Auth::user()->id; 22 $item->client_id = $request->client_id; 23 $item->item_name = $request->item_name; 24 $item->delivery_date = $request->delivery_date; 25 $item->unit_price = $request->unit_price; 26 $item->states = $request->states; 27 $item->memo = $request->memo; 28 $item->save(); 29 30 return redirect('/user'); 31 } 32 public function deleteItem(Request $request) 33 { 34 $item = Item::where('id', '=', $request->id)->first(); 35 $item->delete(); 36 37 return redirect()->back(); 38 } 39} 40
###web.php(一部抜粋)
php
1// 案件情報の追加・更新・削除 2Route::post('addNewItem','TodoController@addNewItem'); 3Route::get('/editItem/{id}', 'TodoController@editItem'); 4Route::post('/updateItem/{id}','TodoController@updateItem'); 5Route::delete('/deleteItem/{id}','TodoController@deleteItem');
###editItem.blade.php
php
1@extends('layouts.layout') 2@section('title','案件管理画面') 3 4@section('body') 5 <!--サイドメニューここから--> 6 <div class="row"> 7 <div class="col s0 l2"> 8 <ul id="slide-out" class="sidenav sidenav-fixed "> 9 <li><a href="{{url('/user')}}">クライアント一覧<i class="material-icons left">person</i></a></li> 10 <li><a href="#">案件カレンダー<i class="material-icons left">date_range</i></a></li> 11 <li><a href="{{url('/addClient')}}">クライアント追加<i class="material-icons left">add</i></a></li> 12 <li><a href="{{url('addItem')}}">案件追加<i class="material-icons left">add</i></a></li> 13 </ul> 14 </div> 15 <!--サイドメニューここまで--> 16 <div class="col s12 offset-l1 l8"> 17 <nav class="header"> 18 <a href="#" data-target="slide-out" class="sidenav-trigger btn-floating"><i class="medium z-depth-1 material-icons">add</i></a> 19 <h2 class="center-align">案件管理画面</h2> 20 </nav> 21 <form action="/updateItem/{{$list->id}}" method="POST"> 22 {{ csrf_field() }} 23 <div class="input-field col s12"> 24 <input id="item_name" type="text" class="validate" name="item_name" value="{{$list->item_name}}"> 25 <label for="item_name">案件名</label> 26 </div> 27 <div class="input-field col s12"> 28 <input id="delivery_date" type="text" class="datepicker" name="delivery_date" value="{{$list->delivery_date}}"> 29 <label for="delivery_date">納期</label> 30 </div> 31 <div class="input-field col s12"> 32 <input id="unit_price" type="text" class="validate" name="unit_price" value="{{$list->unit_price}}"> 33 <label for="unit_price">単価</label> 34 </div> 35 <div class="input-field col s12"> 36 <input id="memo" type="text" class="validate" name="memo" value="{{$list->memo}}"> 37 <label for="memo">備考欄</label> 38 </div> 39 <input type="submit" value="案件編集" class="waves-effect waves-light btn blue accent-1"> 40 <input type="hidden" name="client_id" value="{{$list->client_id}}" > 41 <input type="hidden" name="states" value="{{$list->states}}" > 42 </form> 43 <form method="POST" action="/deleteItem/{{$list->id}}" method="post"> 44 {{ method_field('delete') }} 45 {{csrf_field()}} 46 <input type="submit" value="案件情報削除" class="waves-effect waves-light btn red lighten-1"> 47 </form> 48 </div> 49 </div> 50 51@endsection
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/20 00:23
2019/06/20 00:27