質問編集履歴
1
投稿時点から変更した点を記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -120,4 +120,64 @@
|
|
120
120
|
|
121
121
|
ご教授お願いします。
|
122
122
|
## 5. 使用言語・ライブラリのバージョン
|
123
|
-
Laravel Framework 6.20.27
|
123
|
+
Laravel Framework 6.20.27
|
124
|
+
|
125
|
+
|
126
|
+
### 変更点
|
127
|
+
上記の内容を踏まえて、Userモデル内でAuthを使ったことでエラーが出ている可能性があったため、
|
128
|
+
下記のように、モデル内ではなくcontrollerの中でAuthを使うように変更しました。
|
129
|
+
|
130
|
+
web.php
|
131
|
+
```
|
132
|
+
Route::get('/board/email', 'SettingController@prechange')->name('prechange');
|
133
|
+
Route::post('/board/email/change', 'SettingController@createEmailToken')->name('email_token');
|
134
|
+
Route::view('/board/mail-sent', 'change_mail-sent')->name('change_mail_sent');
|
135
|
+
Route::get('/board/verify/{token}', 'SettingController@verifyEmail');
|
136
|
+
Route::post('/board/email','SettingController@email_store')->name('email_store');
|
137
|
+
```
|
138
|
+
SettingController.php
|
139
|
+
```
|
140
|
+
public function prechange(){
|
141
|
+
$user = User::where('id',Auth::get())->first();
|
142
|
+
$user_name = $user->name;
|
143
|
+
|
144
|
+
return view('prechange',['user_name'=>$user_name]);
|
145
|
+
}
|
146
|
+
|
147
|
+
public function createEmailToken(Request $request){
|
148
|
+
//Validation部分
|
149
|
+
$rule = [
|
150
|
+
'email' => 'required|max:500',
|
151
|
+
];
|
152
|
+
|
153
|
+
$messages = [
|
154
|
+
'email.required' => 'メールアドレスは必ず入力してください。',
|
155
|
+
'email.max' => 'メールアドレスは500文字以内で入力してください。'
|
156
|
+
];
|
157
|
+
|
158
|
+
$validator = Validator::make($request->all(), $rule, $messages);
|
159
|
+
|
160
|
+
if ($validator->fails()) {
|
161
|
+
return redirect()->route('prechange')
|
162
|
+
->withErrors($validator)
|
163
|
+
->withInput();
|
164
|
+
}
|
165
|
+
|
166
|
+
$request->session()->put('email', $request->input('email'));
|
167
|
+
User::prechange($request->get('uer_name'));
|
168
|
+
|
169
|
+
return redirect()->route('change_mail_sent');
|
170
|
+
}
|
171
|
+
```
|
172
|
+
User.php
|
173
|
+
```
|
174
|
+
public function prechange($user_name){
|
175
|
+
$user = User::where('name',$user_name)->first();
|
176
|
+
$user->email_verify_token = Str::random(40);
|
177
|
+
$user->save();
|
178
|
+
}
|
179
|
+
```
|
180
|
+
上記で実行した場合、
|
181
|
+
prechangeメソッドで引っかかっているようでした。
|
182
|
+
同controller内の他メソッドではAuthを使えているのですが、なぜか、このメソッドだけエラーを返してしまします。
|
183
|
+
エラー内容は前回と同様です。
|