質問編集履歴

4

修正依頼のためコードを追記

2021/02/01 08:32

投稿

php_user001
php_user001

スコア5

test CHANGED
File without changes
test CHANGED
@@ -26,8 +26,12 @@
26
26
 
27
27
 
28
28
 
29
+ use Illuminate\Http\Request;
30
+
29
31
  use App\Http\Requests\MypageRequest;
30
32
 
33
+ use App\Http\Requests\UserRequest;
34
+
31
35
 
32
36
 
33
37
  ```ここに言語を入力
@@ -36,19 +40,39 @@
36
40
 
37
41
  {
38
42
 
39
- public function update(MypageRequest $request, $id)
43
+ public function update(MypageRequest $request, $id)
40
-
44
+
41
- {
45
+ {
42
-
43
-
44
-
46
+
45
- try {
47
+ try {
46
-
48
+
47
- $user = \App\User::findOrFail($id);
49
+ $user = \App\User::findOrFail($id);
48
-
49
-
50
-
50
+
51
+
52
+
51
- //省略
53
+ // 保存処理
54
+
55
+ $user->name = $request->name;
56
+
57
+ $user->email = $request->email;
58
+
59
+ $user->save();
60
+
61
+
62
+
63
+ return redirect(route('mypage'))->with('flash_message', __('ユーザ情報を編集しました'));
64
+
65
+ } catch (\Exception $e) {
66
+
67
+ // エラー発生時は、ロールバック
68
+
69
+ \DB::rollback();
70
+
71
+ throw $e;
72
+
73
+ }
74
+
75
+ }
52
76
 
53
77
 
54
78
 
@@ -64,13 +88,51 @@
64
88
 
65
89
  ```
66
90
 
67
-
91
+ namespace App\Http\Requests;
92
+
93
+
94
+
95
+ use Illuminate\Foundation\Http\FormRequest;
68
96
 
69
97
  use Illuminate\Validation\Rule;
70
98
 
71
99
 
72
100
 
101
+ class MypageRequest extends FormRequest
102
+
103
+ {
104
+
105
+ /**
106
+
107
+ * Determine if the user is authorized to make this request.
108
+
109
+ *
110
+
111
+ * @return bool
112
+
113
+ */
114
+
115
+ public function authorize()
116
+
117
+ {
118
+
119
+ return true;
120
+
121
+ }
122
+
123
+
124
+
125
+ /**
126
+
127
+ * Get the validation rules that apply to the request.
128
+
129
+ *
130
+
131
+ * @return array
132
+
133
+ */
134
+
73
- public function rules()
135
+ public function rules()
74
136
 
75
137
  {
76
138
 
@@ -78,93 +140,139 @@
78
140
 
79
141
  return [
80
142
 
143
+ 'name' => ['required', 'string', 'max:30'],
144
+
145
+ 'email' => ['required', 'email:rfc,dns', Rule::unique('users')->ignore($this->id)],
146
+
147
+ 'role' => ['required'],
148
+
149
+
150
+
151
+ ];
152
+
153
+ }
154
+
155
+
156
+
157
+ public function messages()
158
+
159
+ {
160
+
161
+ return [
162
+
163
+ "name.required" => "アカウント名は必須項目です。",
164
+
165
+ "email.required" => "メールアドレスは必須項目です。",
166
+
167
+ "email.email" => "正しいメールアドレスの形式で入力して下さい。",
168
+
169
+ "comment.required" => "内容を入力して下さい。",
170
+
171
+ "role.required" => "権限が選択されていません。",
172
+
173
+ ];
174
+
175
+ }
176
+
177
+ }
178
+
179
+ ```
180
+
181
+
182
+
183
+ ### 試したこと
184
+
185
+
186
+
187
+ "name" と"email"のrules()をコメントアウトすると
188
+
189
+ 次の画面に遷移することが出来、入力エラー時も期待通りのバリデーションメッセージを
190
+
191
+ 確認出来ています。
192
+
193
+
194
+
195
+ ### 補足情報(FW/ツールのバージョンなど)
196
+
197
+
198
+
199
+ 因果関係があるか定かではありませんが
200
+
201
+ app/Http/Requests ディレクトリの中にUserRequest.phpファイルがあり
202
+
203
+ そこのrules()と同じ処理を記載しています。
204
+
205
+ ```
206
+
207
+ ## app/Http/Requests/UserRequest
208
+
209
+ namespace App\Http\Requests;
210
+
211
+
212
+
213
+ use Illuminate\Foundation\Http\FormRequest;
214
+
215
+ use Illuminate\Validation\Rule;
216
+
217
+
218
+
219
+ class UserRequest extends FormRequest
220
+
221
+ {
222
+
223
+ /**
224
+
225
+ * Determine if the user is authorized to make this request.
226
+
227
+ *
228
+
229
+ * @return bool
230
+
231
+ */
232
+
233
+ public function authorize()
234
+
235
+ {
236
+
237
+ return true;
238
+
239
+ }
240
+
241
+
242
+
243
+ /**
244
+
245
+ * Get the validation rules that apply to the request.
246
+
247
+ *
248
+
249
+ * @return array
250
+
251
+ */
252
+
253
+ public function rules()
254
+
255
+ {
256
+
257
+ return [
258
+
81
259
  'name' => ['required', 'string', 'max:30'],
82
260
 
83
261
  'email' => ['required', 'email:rfc,dns', Rule::unique('users')->ignore($this->id)],
84
262
 
85
- 'role' => ['required'],
263
+ //半角英数字をそれぞれ1種類以上含む6文字以上100文字以下の正規表現
264
+
86
-
265
+ 'password' => ['required', 'string', 'min:6', 'confirmed', 'regex:/\A(?=.*?[a-z])(?=.*?\d)[a-z\d]{6,100}+\z/i'],
266
+
87
-
267
+ 'password_confirmation' => ['required', 'string', 'min:6', 'regex:/\A(?=.*?[a-z])(?=.*?\d)[a-z\d]{6,100}+\z/i'],
88
268
 
89
269
  ];
90
270
 
91
271
  }
92
272
 
93
-
94
-
95
- public function messages()
96
-
97
- {
98
-
99
- return [
100
-
101
- "name.required" => "アカウント名は必須項目です。",
102
-
103
- "email.required" => "メールアドレスは必須項目です。",
104
-
105
- "email.email" => "正しいメールアドレスの形式で入力して下さい。",
106
-
107
- "comment.required" => "内容を入力して下さい。",
108
-
109
- "role.required" => "権限が選択されていません。",
110
-
111
- ];
112
-
113
- }
273
+ }
114
-
274
+
115
- ```
275
+ ```
116
-
117
-
118
-
119
- ### 試したこと
120
-
121
-
122
-
123
- "name" と"email"のrules()をコメントアウトすると
124
-
125
- 次の画面に遷移することが出来、入力エラー時も期待通りのバリデーションメッセージを
126
-
127
- 確認出来ています。
128
-
129
-
130
-
131
- ### 補足情報(FW/ツールのバージョンなど)
132
-
133
-
134
-
135
- 因果関係があるか定かではありませんが
136
-
137
- app/Http/Requests ディレクトリの中にUserRequest.phpファイルがあり
138
-
139
- そこのrules()と同じ処理を記載しています。
140
-
141
- ## app/Http/Requests/UserRequest
142
-
143
- use Illuminate\Validation\Rule;
144
-
145
-
146
-
147
- public function rules()
148
-
149
- {
150
-
151
-
152
-
153
- return [
154
-
155
- 'name' => ['required', 'string', 'max:30'],
156
-
157
- 'email' => ['required', 'email:rfc,dns', Rule::unique('users')->ignore($this->id)],
158
-
159
- 'role' => ['required'],
160
-
161
-
162
-
163
- ];
164
-
165
- }
166
-
167
-
168
276
 
169
277
 
170
278
 

3

誤字

2021/02/01 08:32

投稿

php_user001
php_user001

スコア5

test CHANGED
File without changes
test CHANGED
@@ -58,7 +58,11 @@
58
58
 
59
59
 
60
60
 
61
+ ```
62
+
61
63
  ## app/Http/Requests/MypageRequest
64
+
65
+ ```
62
66
 
63
67
 
64
68
 

2

マークダウン記載ミス

2021/01/31 16:23

投稿

php_user001
php_user001

スコア5

test CHANGED
File without changes
test CHANGED
@@ -55,8 +55,6 @@
55
55
  }
56
56
 
57
57
 
58
-
59
- ```
60
58
 
61
59
 
62
60
 
@@ -140,9 +138,7 @@
140
138
 
141
139
  use Illuminate\Validation\Rule;
142
140
 
143
- ```ここに言語を入力
144
141
 
145
- ```ここに言語を入力
146
142
 
147
143
  public function rules()
148
144
 

1

マークダウン記載ミス

2021/01/31 15:33

投稿

php_user001
php_user001

スコア5

test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  use Illuminate\Validation\Rule;
68
68
 
69
- ```ここに言語を入力
69
+
70
70
 
71
71
  public function rules()
72
72