1

我需要使用我的自定义验证规则来验证 API 请求。

请求类:

这是我的请求验证规则。

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class LoginRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'username' => 'required',
            'password' => 'required'
        ];
    }
    public function messages()
    {
        return [
            'username.required' => 'The Username field is required',
            'password.required'  => 'The Password field is required'
        ];
    }
}

API 控制器:

这是我的 API 控制器和方法。

use Illuminate\Http\Request;
use App\Http\Controllers\API\BaseController as BaseController;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests\LoginRequest;

class LoginController extends BaseController
{
    public function login(LoginRequest $request)
    {
        print_r($validatorMsg);
        die();
    }
}

无法获得错误信息。

4

2 回答 2

0

伙计们,我解决了这个问题,这是解决方案:

public function login(Request $request)
{
    $LoginRequest = New LoginRequest;
    $validator = Validator::make($request->all(), $LoginRequest->rules(),$LoginRequest->messages());

    if($validator->fails()){
        return response()->json($validator->errors(), 422);      
    }
}
于 2019-11-21T15:47:30.060 回答
-1

为了在您的 API 中显示错误消息,请response()在您的类中使用方法LoginRequest,因此您始终返回 JSON。像这样的东西:

public function response(array $errors)
{
     // Always return JSON.
     return response()->json($errors, 422);
}

现在尝试提交空表单,您应该可以查看错误消息。

于 2019-11-18T13:50:21.887 回答