我只想使用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 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'
];
}
}
并且,我希望它在AuthController中用作:
use App\Http\Requests\Api\Auth\RegisterRequest;
public function postRegister(RegisterRequest $request)
{
dd($request->all());
}
但是,验证和请求参数都没有显示在respose中。 所有路由工作正常,但查询参数为空。任何帮助都会得到满足。
版本:Laravel:5.1
我想让laravel处理所有请求参数,并说明API请求是成功还是有错误。
答案 0 :(得分:0)
您的authorize
方法应该返回true。如果为false,则RegisterRequest
将禁止返回,因为您未授权使用此RegisterRequest
类。因此,将authorize
方法从RegisterRequest
更改为此:
public function authorize()
{
return true;
}
修改:
如果您想以自己的方式回复错误消息,可以使用RegisterRequest
方法覆盖响应方法,如下所示:
public function response(array $errors)
{
return \Response::json($errors);
}