Laravel验证didint可以正常工作

时间:2019-05-14 05:36:53

标签: laravel laravel-5

UserController.php

public function login(Request $request)
{
    $request->validate([
        'email'=>'required',
        'password'=>'required'
    ]);
    return "test";
}

api.php

 Route::group(['prefix' => 'admin'], function() {
    Route::post('login', 'UserController@login');
    Route::get('users', 'UserController@index');
 });

Web.php。

Route::get('/', function () {
    return view('welcome');
});

如果我通过电子邮件和密码,它将打印测试。但是当我错过任何一个参数时,它将加载index.blade.php Image

3 个答案:

答案 0 :(得分:0)

像这样更改login()函数

public function login(Request $request)
{

    $validator = Validator::make($request->all(), [
        'email' => 'required',
        'password' => 'required',
    ]);

            if ($validator->fails()) {
                return redirect(action('UserController@login')) // replace with your login route
                        ->withErrors($validator)
                        ->withInput();
           } 

            return "test";
        }

这可能会解决您的问题。

答案 1 :(得分:0)

首先在Header处设置Postman

Accept: application/json

答案 2 :(得分:0)

您错过了验证失败的条件。

$validator = Validator::make($request->all(), [
    'email' => 'required',
    'password' => 'required',
]);

if ($validator->fails()) {
    return 'Success';
} else {
    return 'Error';
}

根据您当前的代码,无论是否进行验证,您每次都发送return "test";