質問編集履歴
4
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
laravel9 問い合わせフォームを作成しました。
|
2
|
-
問い合わせフォームは、「入力画面(company-info/{ユーザーID})」-> 「確認画面 (contact/confirm)」->「送信完了画面 (contact/thanks)」へとページ遷移します。
|
3
2
|
|
4
|
-
しかしこの「入力画面」は、登録ユーザー詳細ページに設置してあり、問い合わせフォームのURLは以下のようになっています。
|
5
|
-
```URL
|
6
|
-
company-info/{ユーザーID}
|
7
|
-
```
|
8
|
-
「
|
3
|
+
問い合わせフォームは、「入力画面(company-info/{企業ID})」-> 「確認画面 (contact/confirm)」->「送信完了画面 (contact/thanks)」へとページ遷移します。
|
9
4
|
|
5
|
+
しかし、この「入力画面」は、登録企業詳細ページに設置してあり、問い合わせフォームのURLは以下のようになっています。
|
6
|
+
|
7
|
+
http://localhost/company-info/{企業ID}
|
8
|
+
|
9
|
+
「確認画面 (contact/confirm)」へと遷移した際に 「入力画面に戻る」ボタンを押すとcompany-info/{企業ID}へ戻りたいのですが、「入力画面に戻る」場合リダイレクト処理、コントローラーの書き方がわかりません。
|
10
|
+
|
11
|
+
また、送信ボタンを押すと、登録企業のメールアドレスも取得して問い合わせ内容を送信したいです。
|
12
|
+
|
13
|
+
コントローラーの処理は以下のように書いています。
|
10
14
|
```ContactsController.php
|
11
15
|
public function send(Request $request)
|
12
16
|
{
|
@@ -31,7 +35,7 @@
|
|
31
35
|
if($action !== 'submit'){
|
32
36
|
// 戻るボタンの場合リダイレクト処理
|
33
37
|
return redirect()
|
34
|
-
->route('company-info/')
|
38
|
+
->route('company-info/{企業ID}')
|
35
39
|
->withInput($inputs);
|
36
40
|
} else {
|
37
41
|
// 送信ボタンの場合、送信処理
|
@@ -39,7 +43,7 @@
|
|
39
43
|
// ユーザにメールを送信
|
40
44
|
\Mail::to($inputs['email'])->send(new ContactsSendmail($inputs));
|
41
45
|
// 自分にメールを送信
|
42
|
-
\Mail::to('
|
46
|
+
\Mail::to('{企業ID}->email')->send(new ContactsSendmail($inputs));
|
43
47
|
|
44
48
|
// 二重送信対策のためトークンを再発行
|
45
49
|
$request->session()->regenerateToken();
|
@@ -51,20 +55,5 @@
|
|
51
55
|
}
|
52
56
|
```
|
53
57
|
|
54
|
-
上記の書き方だと、// 戻るボタンの場合リダイレクト処理時に、URL company-info/{ユーザーID}へ遷移できません。(エラー画面 Route [company-info/] not defined. となる。)
|
55
58
|
|
56
|
-
|
57
|
-
前のページのURLが取得できれば良いのでは?と考え、$prev = url()->previous(); としてみたのですが、 dd($prev);の結果は "http://localhost/contact/confirm" 「確認画面」が取得されています。
|
58
|
-
|
59
|
-
return redirect()->route('company-info/{ユーザーID}') {ユーザーID}部分が取得できれば良いのですが、、、方法がわかりません。
|
60
|
-
|
61
|
-
else 以降に
|
62
|
-
```ContactsController.php
|
63
|
-
// 自分にメールを送信
|
64
|
-
\Mail::to('ここにユーザーのメールアドレスが入る')->send(new ContactsSendmail($inputs));
|
65
|
-
```
|
66
|
-
|
59
|
+
{企業ID}の取得方法が分かればいいのですが、その方法を教えていただきたいです。
|
67
|
-
|
68
|
-
どうすれば、company-info/{ユーザーID}ページに設置している問い合わせフォームから「確認画面 (contact/confirm)」へ遷移。
|
69
|
-
「戻る」ボタンで確認画面から company-info/{ユーザーID}に戻れるでしょうか?
|
70
|
-
|
3
テキスト修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -39,7 +39,7 @@
|
|
39
39
|
// ユーザにメールを送信
|
40
40
|
\Mail::to($inputs['email'])->send(new ContactsSendmail($inputs));
|
41
41
|
// 自分にメールを送信
|
42
|
-
\Mail::to('ここにユーザーのメールアドレスが入る')->send(new ContactsSendmail($inputs));
|
42
|
+
\Mail::to('ここに登録ユーザーのメールアドレスが入る。 例) $user->mail')->send(new ContactsSendmail($inputs));
|
43
43
|
|
44
44
|
// 二重送信対策のためトークンを再発行
|
45
45
|
$request->session()->regenerateToken();
|
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
前のページのURLが取得できれば良いのでは?と考え、$prev = url()->previous(); としてみたのですが、 dd($prev);の結果は "http://localhost/contact/confirm" 「確認画面」が取得されています。
|
58
58
|
|
59
|
-
return redirect()->route('company-info/{ユーザーID}')が取得できれば良いのですが、、、方法がわかりません。
|
59
|
+
return redirect()->route('company-info/{ユーザーID}') {ユーザーID}部分が取得できれば良いのですが、、、方法がわかりません。
|
60
60
|
|
61
61
|
else 以降に
|
62
62
|
```ContactsController.php
|
2
テキスト修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,38 +7,64 @@
|
|
7
7
|
```
|
8
8
|
「確認画面」へと遷移した際に 「戻る」ボタンを押すとcompany-info/{ユーザーID}へ戻りたいのですが、戻るボタンの場合リダイレクト処理、コントローラーの書き方がわかりません。
|
9
9
|
|
10
|
-
```
|
10
|
+
```ContactsController.php
|
11
|
+
public function send(Request $request)
|
12
|
+
{
|
13
|
+
$request->validate([
|
14
|
+
'company_name' => ['nullable', 'string', 'max:255'],
|
15
|
+
'contact_name' => ['required', 'string', 'max:255'],
|
16
|
+
'kana' => ['required', 'string', 'max:255', 'regex:/^[ア-ン゛゜ァ-ォャ-ョー]+$/u'],
|
17
|
+
'tell' => ['required', 'numeric', 'digits_between:10,11'],
|
18
|
+
'zipcode' => ['nullable', 'numeric', 'digits_between:6,7'],
|
19
|
+
'add' => ['required', 'string', 'max:255'],
|
20
|
+
'email' => ['required', 'email', 'max:255'],
|
11
|
-
|
21
|
+
'body' => ['required','max:255']
|
22
|
+
]);
|
12
23
|
|
13
|
-
|
24
|
+
// actionの値を取得
|
14
|
-
|
25
|
+
$action = $request->input('action');
|
15
26
|
|
27
|
+
// action以外のinputの値を取得
|
28
|
+
$inputs = $request->except('action');
|
29
|
+
|
16
|
-
|
30
|
+
//actionの値で分岐
|
17
|
-
|
31
|
+
if($action !== 'submit'){
|
18
|
-
|
32
|
+
// 戻るボタンの場合リダイレクト処理
|
19
|
-
|
33
|
+
return redirect()
|
20
|
-
|
34
|
+
->route('company-info/')
|
21
|
-
|
35
|
+
->withInput($inputs);
|
22
|
-
|
36
|
+
} else {
|
23
|
-
|
37
|
+
// 送信ボタンの場合、送信処理
|
38
|
+
|
39
|
+
// ユーザにメールを送信
|
40
|
+
\Mail::to($inputs['email'])->send(new ContactsSendmail($inputs));
|
41
|
+
// 自分にメールを送信
|
42
|
+
\Mail::to('ここにユーザーのメールアドレスが入る')->send(new ContactsSendmail($inputs));
|
43
|
+
|
44
|
+
// 二重送信対策のためトークンを再発行
|
45
|
+
$request->session()->regenerateToken();
|
46
|
+
|
47
|
+
// 送信完了ページのviewを表示
|
48
|
+
return view('contact.thanks');
|
49
|
+
|
24
|
-
|
50
|
+
}
|
51
|
+
}
|
25
52
|
```
|
26
53
|
|
27
54
|
上記の書き方だと、// 戻るボタンの場合リダイレクト処理時に、URL company-info/{ユーザーID}へ遷移できません。(エラー画面 Route [company-info/] not defined. となる。)
|
28
55
|
|
29
56
|
|
30
|
-
前のページのURLが取得できれば良いのでは?と考え、
|
31
|
-
|
32
|
-
i
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
->
|
38
|
-
->withInput($inputs);
|
39
|
-
} else {
|
40
|
-
// 送信ボタンの場合、送信処理
|
41
|
-
}
|
57
|
+
前のページのURLが取得できれば良いのでは?と考え、$prev = url()->previous(); としてみたのですが、 dd($prev);の結果は "http://localhost/contact/confirm" 「確認画面」が取得されています。
|
58
|
+
|
59
|
+
return redirect()->route('company-info/{ユーザーID}')が取得できれば良いのですが、、、方法がわかりません。
|
60
|
+
|
61
|
+
else 以降に
|
62
|
+
```ContactsController.php
|
63
|
+
// 自分にメールを送信
|
64
|
+
\Mail::to('ここにユーザーのメールアドレスが入る')->send(new ContactsSendmail($inputs));
|
42
65
|
```
|
66
|
+
登録ユーザーのメールアドレスも取得しなければいけないので、問い合わせフォームを設置しているユーザーの情報を取得しなければいけません。
|
43
67
|
|
68
|
+
どうすれば、company-info/{ユーザーID}ページに設置している問い合わせフォームから「確認画面 (contact/confirm)」へ遷移。
|
44
|
-
|
69
|
+
「戻る」ボタンで確認画面から company-info/{ユーザーID}に戻れるでしょうか?
|
70
|
+
|
1
テキスト修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
laravel9 問い合わせフォームを作成しました。
|
2
2
|
問い合わせフォームは、「入力画面(company-info/{ユーザーID})」-> 「確認画面 (contact/confirm)」->「送信完了画面 (contact/thanks)」へとページ遷移します。
|
3
3
|
|
4
|
-
しかしこの「入力画面」は、登録ユーザー詳細ページに設置してあり、URLは以下のようになっています。
|
4
|
+
しかしこの「入力画面」は、登録ユーザー詳細ページに設置してあり、問い合わせフォームのURLは以下のようになっています。
|
5
5
|
```URL
|
6
6
|
company-info/{ユーザーID}
|
7
7
|
```
|