Php Laravel中的自定义请求验证程序
我只想使用laravel自定义请求处理程序验证API请求。为此,我创建了一个RegisterRequest,包含以下内容Php Laravel中的自定义请求验证程序,php,laravel,request,laravel-5.1,Php,Laravel,Request,Laravel 5.1,我只想使用laravel自定义请求处理程序验证API请求。为此,我创建了一个RegisterRequest,包含以下内容 <?php namespace App\Http\Requests\Api\Auth; use App\Http\Requests\Request; class RegisterRequest extends Request { /** * Determine if the user is authorized to make this requ
<?php
namespace App\Http\Requests\Api\Auth;
use App\Http\Requests\Request;
class RegisterRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required'
];
}
}
但是,响应中既没有显示验证参数,也没有显示请求参数。
所有路由都工作正常,但查询参数为空。任何帮助都将受到感谢
版本:Laravel:5.1
我想让laravel处理所有请求参数,并告诉API请求是成功的还是有错误的。您的
authorize
方法应该返回true。如果为false,RegisterRequest
将返回禁止,因为您无权使用此RegisterRequest
类。因此,将您的authorize
方法从RegisterRequest
更改为:
public function authorize()
{
return true;
}
编辑:
如果要以自己的方式回复错误消息,可以覆盖RegisterRequest
方法中的响应方法,如下所示:
public function response(array $errors)
{
return \Response::json($errors);
}
我已将其更改为false,以强制对api end进行错误响应。如果authorize方法返回false,将自动返回带有403状态码的HTTP响应,并且您的控制器方法将不会执行。有关更多信息,请检查此项,Laravel将自动检查请求是否为ajax并返回相应的响应,对吗?请求尝试没有返回任何响应。您的请求甚至没有到达控制器方法,因此无法添加任何内容;D
public function response(array $errors)
{
return \Response::json($errors);
}