如何在 Laravel 6 API 中创建自定义验证规则
How to create custom validation rule in Laravel 6 API
我需要使用我的自定义验证规则来验证 API 请求。
请求Class:
这是我的请求验证规则。
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();
}
}
无法获取错误消息。
为了在您的 API 中显示错误消息,请在您的 LoginRequest
class 中使用 response()
方法,这样您总是 return JSON。像这样:
public function response(array $errors)
{
// Always return JSON.
return response()->json($errors, 422);
}
现在尝试提交空表单,您应该可以看到错误消息。
伙计们,我解决了这个问题,这是解决方案:
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);
}
}
我需要使用我的自定义验证规则来验证 API 请求。
请求Class:
这是我的请求验证规则。
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();
}
}
无法获取错误消息。
为了在您的 API 中显示错误消息,请在您的 LoginRequest
class 中使用 response()
方法,这样您总是 return JSON。像这样:
public function response(array $errors)
{
// Always return JSON.
return response()->json($errors, 422);
}
现在尝试提交空表单,您应该可以看到错误消息。
伙计们,我解决了这个问题,这是解决方案:
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);
}
}