前提・実現したいこと
問い合わせページを作成しており、入力ページから確認ページへPOSTして確認ページにてPOST値を取得・表示させたい。
発生している問題・エラーメッセージ
上記に記載した通り、POSTされた値を確認ページにて表示させたいのですが、値の取得がうまくできず、長時間ハマってしまっている状況にあります。
エラーメッセージ:
Trying to get property 'title' of non-object (View: /Applications/MAMP/htdocs/schedule_app/resources/views/inquiry/confirm.blade.php)
お忙しいところ恐縮ですが、エラー解決の為に力をお借りできればと思います。
該当のソースコード
入力ページ
index.blade.php
php
1... 2 <form class="" action="/inquiry/confirm" method="post"> 3 <table class="inquiry-table"> 4 {{ csrf_field() }} 5 <tr> 6 <th>タイトル</th> 7 </tr> 8 <tr> 9 <td> 10 <input type="text" name="title" value="{{old('title')}}"> 11 </td> 12 </tr> 13 <tr> 14 <th>問い合わせ内容</th> 15 </tr> 16 <tr> 17 <td> 18 <textarea name="inquiry" rows="8" cols="80">{{old('inquiry')}}</textarea> 19 </td> 20 </tr> 21 <tr> 22 <th></th> 23 </tr> 24 <tr> 25 <td class="inquiry-submit"> 26 <input class="btn-square-raised" type="submit" name="" value="送信"> 27 </td> 28 </tr> 29 </table> 30 </form> 31...
確認ページ
confirm.blade.php
php
1... 2 <table> 3 @foreach($items as $item) 4 <tr> 5 <td>{{$item->title}}</td> 6 <td>{{$item->inquiry}}</td> 7 </tr> 8 @endforeach 9 </table> 10...
ルート
web.php
php
1... 2Route::get('/inquiry/index', 'InquiryController@index'); 3Route::post('/inquiry/confirm', 'InquiryController@confirm'); 4...
コントローラ
InquiryController.php
php
1... 2class InquiryController extends Controller 3{ 4 public function index(Request $request){ 5 return view('inquiry.index'); 6 } 7 8 public function confirm(Request $request) 9 { 10 $items = $request->all(); 11 return view('inquiry.confirm', ['items' => $items]); 12 } 13} 14...
試したこと
確認ページにて
php
1... 2 <table> 3 @foreach($items as $item) 4 <tr> 5 <td>{{$item}}</td> 6 </tr> 7 @endforeach 8 </table> 9...
のようにして試したところ、配列の出力はされているためPOST値の変数へ配列での格納、値の受け渡しは問題なくできているとは思うのですが、変数に格納された配列から項目ごとに取り出そうとするとエラーが出てしまいます。
補足情報(FW/ツールのバージョンなど)
PHP 7.1.23
Laravel Framework 5.8.20
追記
mts10806様
回答ありがとうございます。
未熟者でしてdd()の存在を知らず、以下のように行いましたが合っていますでしょうか。
配列の出力:
POST Data
_token
"PVgVnZ4vOYi1aSw4soCqDo3SiprQI4TelbbLoEo9"
title
"test"
inquiry
"test"
$itemsをdd():
InquiryController.php
php
1... 2 public function confirm(Request $request) 3 { 4 $items = $request->all(); 5 dd($items); 6 return view('inquiry.confirm', ['items' => $items]); 7 } 8...
回答1件
あなたの回答
tips
プレビュー