【環境】
vue2.5.17
vue-router3.1.3
vue-template-compiler2.6.10
Laravel5.8.35
【やりたいこと】
パスワードリセット機能を作りたい
【出ているエラーの内容】
■ブラウザのコンソール
app.js:291 POST http://localhost:3000/api/passReset 422 (Unprocessable Entity)
■ブラウザのネットワーク
{message: "The given data was invalid.", errors: {email: ["The email field is required."]}}
message: "The given data was invalid."
errors: {email: ["The email field is required."]}
email: ["The email field is required."]
0: "The email field is required."
【ソースコード】
■passResset.vue
vue
1<template> 2 <div class="p-reset"> 3 4 <form @submit.prevent="passReset"> 5 6 <div class="p-reset__email"> 7 <h2 class="p-reset__title"><i class="fas fa-lock"></i> ログインできない場合</h2> 8 <p class="p-reset__text">パスワード再設定用のログインリンクをお送りしますので、メールアドレスを入力してください。 9 </p> 10 <input class="c-input__menu" type="email" placeholder="メールアドレス"> 11 </div> 12 13 <div class="p-reset__button"> 14 <button class="c-button__menu">リンクを送信する</button> 15 </div> 16 </form> 17 18 <RouterLink to="/register"><div class="p-reset__register"><p>新規登録する</p></div></RouterLink> 19 <RouterLink to="/login"><div class="p-reset__login"><p>ログインに戻る</p></div></RouterLink> 20 21 </div> 22</template> 23 24<script> 25 26 27 export default { 28 data() { 29 return { 30 passResetFrom: { 31 email: '' 32 } 33 } 34 }, 35 methods: { 36 async passReset () { 37 // await axios.post('/api/passReset', { email: this.email }) 38 await axios.post('/api/passReset', this.passResetFrom) 39 } 40 } 41 } 42</script> 43
■api.php (ルーティング)
php
1Route::post('/passReset', 'Auth\PassResetController@sendResetLinkEmail')->name('passReset');
■PassResetController.php
php
1<?php 2 3namespace App\Http\Controllers; 4namespace App\Http\Controllers\Auth; 5 6use App\Http\Controllers\Controller; 7use Illuminate\Http\Request; 8use Illuminate\Foundation\Auth\SendsPasswordResetEmails; 9use Illuminate\Support\Facades\Password; 10 11class PassResetController extends Controller 12{ 13 use SendsPasswordResetEmails; 14 15 16 public function __construct() 17 { 18 $this->middleware('guest'); 19 } 20 21 public function sendResetLinkEmail(Request $request) 22 { 23 $this->validateEmail($request); 24 25 $response = $this->broker()->sendResetLink( 26 $request->only('email') 27 ); 28 29 return $response == Password::RESET_LINK_SENT 30 ? response()->json(['message' => 'Reset link sent to your email.', 'status' => true], 201) 31 : response()->json(['message' => 'Unable to send reset link', 'status' => false], 401); 32 } 33} 34
ご教授お願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/19 07:27
2020/01/19 07:37
2020/01/19 07:53
2020/01/19 08:20 編集
2020/01/19 10:02