前提・実現したいこと
php,laravelで問い合わせ情報をデータベースへ登録する機能を、練習でつくっています。
登録情報の確認ページから、入力ページへ戻った際に、入力済の情報がフォームに残っている
ようにしたいので、コントローラ間で変数を共有できるようにしたいです。
発生している問題・エラーメッセージ
global変数の宣言ではundefinedになるだけだったので、検索して調べたのですが構文エラーになるだけでした。
該当のソースコード
ルーティング
Route::get('/', [InputFormController::class, 'index']);
Route::post('/confirm', [InputFormController::class, 'confirm']);
Route::get('/thanks', [InputFormController::class, 'thanks']);
コントローラ
class InputFormController extends Controller
{
public function index()
{
if ($form) {
return view('input', $form);
}
return view('input');
}
public function confirm(Request $request, InputFormRequest $inputformrequest) { global $form; $fullname = $request->lastname . $request->firstname; $form = [ 'fullname' => $fullname, 'gender' => $request->gender, 'email' => $request->email, 'postcode' => $request->postcode, 'address' => $request->address, 'building_name' => $request->building_name, 'opinion' => $request->opinion ]; unset($form['_token'], $form['lastname'], $form['firstname']); return view('confirm', $form); } public function thanks() { if ($form) { DB::table('contacts')->insert($form); return view('thanks'); $form = null; } }
}
試したこと
検索で、2つの方法が見つかりました。
・view()->share()で共有する方法
→share()の性質上、あくまでもviewファイル間でのみの共有のようでした。
https://zakkuri.life/%E3%80%90laravel-%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB[…]4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B%E5%85%B1%E9%80%9A/
・configにファイルを用意して変数を格納する方法
→紹介されている方法で行ってみたのですが、構文エラーになってしまいました。
https://morioh.com/p/fc18d890d54c
補足情報(FW/ツールのバージョンなど)
laravel8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/16 03:58