laravel9 問い合わせフォームを作成しました。
問い合わせフォームは、「入力画面(company-info/{企業ID})」-> 「確認画面 (contact/confirm)」->「送信完了画面 (contact/thanks)」へとページ遷移します。
しかし、この「入力画面」は、登録企業詳細ページに設置してあり、問い合わせフォームのURLは以下のようになっています。
http://localhost/company-info/{企業ID}
「確認画面 (contact/confirm)」へと遷移した際に 「入力画面に戻る」ボタンを押すとcompany-info/{企業ID}へ戻りたいのですが、「入力画面に戻る」場合リダイレクト処理、コントローラーの書き方がわかりません。
また、送信ボタンを押すと、登録企業のメールアドレスも取得して問い合わせ内容を送信したいです。
コントローラーの処理は以下のように書いています。
ContactsController.php
1public function send(Request $request) 2{ 3 $request->validate([ 4 'company_name' => ['nullable', 'string', 'max:255'], 5 'contact_name' => ['required', 'string', 'max:255'], 6 'kana' => ['required', 'string', 'max:255', 'regex:/^[ア-ン゛゜ァ-ォャ-ョー]+$/u'], 7 'tell' => ['required', 'numeric', 'digits_between:10,11'], 8 'zipcode' => ['nullable', 'numeric', 'digits_between:6,7'], 9 'add' => ['required', 'string', 'max:255'], 10 'email' => ['required', 'email', 'max:255'], 11 'body' => ['required','max:255'] 12 ]); 13 14 // actionの値を取得 15 $action = $request->input('action'); 16 17 // action以外のinputの値を取得 18 $inputs = $request->except('action'); 19 20 //actionの値で分岐 21 if($action !== 'submit'){ 22 // 戻るボタンの場合リダイレクト処理 23 return redirect() 24 ->route('company-info/{企業ID}') 25 ->withInput($inputs); 26 } else { 27 // 送信ボタンの場合、送信処理 28 29 // ユーザにメールを送信 30 \Mail::to($inputs['email'])->send(new ContactsSendmail($inputs)); 31 // 自分にメールを送信 32 \Mail::to('{企業ID}->email')->send(new ContactsSendmail($inputs)); 33 34 // 二重送信対策のためトークンを再発行 35 $request->session()->regenerateToken(); 36 37 // 送信完了ページのviewを表示 38 return view('contact.thanks'); 39 40 } 41}
{企業ID}の取得方法が分かればいいのですが、その方法を教えていただきたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。