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

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

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

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

Q&A

1回答

477閲覧

入力データの取得を行いたい

taiyoo

総合スコア1

Laravel

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

0グッド

0クリップ

投稿2021/07/20 06:38

前提・実現したいこと

フォーム入力画面のデータを入力内容確認ページへ取り込みたい。

ここに質問の内容を詳しく書いてください。

Laravel8にてお問い合わせフォームを作成しております。
入力画面へデータ入力後、入力データ確認ページで入力内容の確認を行うシステムにしたいと考えております。
その入力内容確認機能を実装中に以下のエラーメッセージが発生いたしました。

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

Trying to get property 'fullname' of non-object

該当のソースコード

Laravel

1ファイル名:ContactController.php 2 3class ContactController extends Controller 4{ 5 public function index(){ 6 7 return view('index'); 8 } 9 public function confirm(Request $request) 10 { 11 $validate_rule=[ 12 'fullname' => 'required', 13 ]; 14 15 $inputs = $request->all(); 16 return view('confirm', ['inputs' => $inputs,]); 17 } 18 19ファイル名:index.blade.php 20 21 <tr> 22 <th>お名前<span class="null">※</span></th> 23 <td><input type="text" name="fullname" value="{{old('fullname')}}" /></td> 24 <!--<td><input type="text" name="fullname" value="{{old('fullname')}}" /></td>!--> 25 <tr> 26 27ファイル名:confirm.blade.php 28 29<label>お名前<span class="null">※</span></label> 30 {{ $inputs->fullname}} 31 <input type="hidden" name="fullname" value="{{$inputs->fullname}}"> 32 33 34 35### 試したこと 36 37コントローラ内でデータの取得ができているかを確認するために、以下の記述を試してみた 38dd($request->all()); 39Contact::create(); 40 41上記の記述を行うと、データが取得されていることはわかった。しかし本格的にデータをWeb上に表示させるために以下の記述を行うとオブジェクトが設定されていない。というようなエラーが表示された。 42$items = $request->all(); 43Contact::create($items); 44 45上記の方法を試してみたが、ダメだったため、現在の記述に変更しておりますが、また違ったエラーが出てしまっております。 46 47### 補足情報(FW/ツールのバージョンなど) 48 49参考にしたサイト:https://into-the-program.com/laravel-create-contact-form/#i-3

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

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

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

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

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

m.ts10806

2021/07/20 06:52

ルーティングどうなってますか? あと、コードはマークダウンcodeにてご提示願います
taiyoo

2021/07/20 08:49 編集

メッセージ誠にありがとうございます。 申し訳ございません。初めてのため、うまく活用できておりませんでした。 ルーティングは下記の遠rです。 use Illuminate\Support\Facades\Route; use App\Http\Controllers\ContactController; //入力ページ Route::get('/', [ContactController::class, 'index'])->name('contact.index'); //確認ページ Route::post('/confirm', [ContactController::class, 'confirm'])->name('contact.confirm');
m.ts10806

2021/07/20 09:18

質問は編集できます。 原則質問を編集してお返しください。
guest

回答1

0

ContactController.php では
return view('confirm', compact('inputs'));

confirm.blade.php では
$inputs->fullname じゃなく $fullname じゃねーの? って気がした
$inputs->fullname のままでいいんじゃないかって気もする

参考:
[laravel] controllerからviewへの変数の受け渡しとその展開方法 - Qiita

投稿2021/07/20 09:46

編集2021/07/20 10:28
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

taiyoo

2021/07/20 09:56

アドバイス誠にありがとうございます。 早速試してみましたが、$fullnameが定義されていない。というようなエラーメッセージが出ました。 Undefined variable: fullname 何度か、他の方法を試した際にも上記メッセージが表示されており、定義するための方法が理解できていないようです。 その定義とは、どのように調べたらヒントが見つけられるのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問