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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1303閲覧

view に編集したデータのIDが確認画面で取得できない

pup-ganbaru

総合スコア29

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/10/09 08:07

編集2020/10/12 02:12

編集機能を作っていて 編集画面(フォーム入力)→確認画面→保存の流れで実装したいのですが、編集画面でデータを入力して確認画面へ遷移するボタンを押すと以下のようなエラーが出てしまいます。
Undefined index: id
下記編集確認画面の<form action="{{ route('site.update', $data['id'])}}" method="post">   この文でエラーがでています。
どなたか解決方法ご教示ください。よろしくお願いします。

確認画面でdd($data);するとIDが渡ってきていませんでした。

編集確認画面 edit_confrim.blade.php <form action="{{ route('site.update', $data['id'])}}" method="post">   {{$data['site_name']}} {{$data['site_url']}} <input type="hidden" name="site_name" value="{{$data['site_name']}}"> <input type="hidden" name="site_name" value="{{$data['site_url']}}"> <input type="button" onclick="history.back()" value="戻る"> <button type="submit">適用</button> </form>
編集画面 edit.blade.php <form action="{{ route('site.edit_confirm', $site['id'])}}"> <p>サイト名</p> <input type="text" name="site_name" value="{{ old('site_name',$site['site_name'] )}}"> <p>サイトURL</p> <input type="text" name="site_url" value="{{ old('site_url',$site['site_url'] )}}"> <a href="/site">戻る</a> <button type="submit">確認</button> </form>
コントローラー  public function edit($id) { $site = Site::find($id); return view('site/edit', ['site' => $site,]); } public function edit_confirm(Request $request) { $data = $request->all(); return view('site/edit_confirm', ['data' => $data,]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { //リクエストされたIDで編集対象のデータを取得する $data = Site::find($id); //編集データに入力値をつめてsaveする $data->site_name = $request->site_name; $data->site_url = $request->site_url; $data->save(); return redirect()->route('site.index'); }
Wep.php Route::get('site/{site}/edit/confirm', 'App\Http\Controllers\SiteController@edit_confirm')->name('site.edit_confirm'); Route::post('site/{site}/edit/confirm', 'App\Http\Controllers\SiteController@edit_confirm');

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

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

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

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

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

hayato7

2020/10/09 15:04

編集画面から渡ってきているrequestにkeyをidにして取得できるデータがないようなエラーなので(idをsite_idとして渡していたりしませんか?)、編集画面のbladeと、コントローラー後念のためroute.phpを載せておいた方がよいと思います。
pup-ganbaru

2020/10/12 01:17

修正依頼ありがとうございます。編集画面のblade route.php 追記しました。 また、$site['id']として編集確認画面に渡しています。
guest

回答1

0

自己解決

編集画面でhidden でidを送ることで解決しました。

<input type='hidden' name='id' value="{{ $site['id'] }}">

投稿2020/10/12 02:25

pup-ganbaru

総合スコア29

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問