我创建了一个自定义表单请求php aritisan make:request
,并添加了验证规则:
public function rules()
{
return [
'first_name' => 'required|string',
'last_name' => 'required|string',
...
'email' => 'email|unique:auth_user,email',
'password' => ['required', 'confirmed', Password::min(8)],
'password_confirmation' => 'required|string|min:8',
];
}
但是,它会将我重定向到索引页面。这是我的功能:
public function store(RegistrationFormRequest $request)
{
return dd($request);
}
我的POST
请求实际上没有任何参数,所以我已经假设它不会到达dd
函数,而是422
在验证失败时发送错误。但它没有,而是将我重定向到我的路线/
上的页面。web.php
这是结构:
api.php:
Route::post('auths/register', [UserController::class, 'store']);
控制器:
public function store(RegistrationFormRequest $request)
{
return dd($request);
}
自定义表单请求类:
class RegistrationFormRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'first_name' => 'required|string',
'last_name' => 'required|string',
'middle_name' => 'required|string',
'phone' => 'required|numeric|size:10',
'region' => 'exists:base_addressoption,name',
'province' => 'exists:base_addressoption,name',
'city' => 'exists:base_addressoption,name',
'brgy' => 'exists:base_addressoption,name',
'street' => 'required|string',
'address1' => 'required|string',
'zip_code' => 'required|numeric',
'address2' => 'nullable|string',
'email' => 'email|unique:auth_user,email',
'password' => ['required', 'confirmed', Password::min(8)],
'password_confirmation' => 'required|string|min:8',
];
}
}
当我添加所有参数时它可以工作,但是当参数不存在时我需要验证。它需要返回一个错误422
。
更多信息。使用常规Request
作品,但在使用我自己的表单请求时不使用
public function store(Request $request)
{
return dd($request);
}