验证失败时出现“未找到”错误

时间:2020-07-05 08:40:35

标签: php laravel laravel-7

每当验证失败时,我都会得到未找到错误,而我应该得到验证错误。有人可以告诉我我在做什么错吗?当所有输入都可用时,下面的代码可以完美执行。

这是我的路线/api.php

Route::group(['middleware' => 'auth:api'], function() {
    Route::post('/change-password', 'API\AuthController@changePassword');
}

这是我的控制器

<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use App\User;

use Illuminate\Http\Request;


class AuthController extends Controller {

    public function changePassword(Request $request) {
        $rules = [
            'old_password' => 'required',
            'new_password' => 'required|min:6',
            'confirm_password' => 'required|same:new_password',
        ];

        $customMessages = [
            'required' => 'The :attribute field can not be blank.'
        ];

        $this->validate($request, $rules, $customMessages);

        if (! \Hash::check($request->old_password, $request->user()->password)) {
            return response()->json([
                "message" => "Please check your old password"
            ], 400 , [], JSON_NUMERIC_CHECK);
        }
        else if (\Hash::check($request->new_password, $request->user()->password)) {
            return response()->json([
                "message" => "New password is same as the old password"
            ], 400 , [], JSON_NUMERIC_CHECK);
        }
        else {
            User::where('id', $request->user()->id)->update([
                'password' => \Hash::make($request->new_password)
            ]);
            return response()->json([
                "message" => "Password updated successfully"
            ], 200 , [], JSON_NUMERIC_CHECK);
        }
    }
}

0 个答案:

没有答案