Laravel中的自定义请求验证器

时间:2015-12-25 09:04:35

标签: 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 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请求是成功还是有错误。

1 个答案:

答案 0 :(得分:0)

您的authorize方法应该返回true。如果为false,则RegisterRequest将禁止返回,因为您未授权使用此RegisterRequest类。因此,将authorize方法从RegisterRequest更改为此:

public function authorize()
{
    return true;
}

修改: 如果您想以自己的方式回复错误消息,可以使用RegisterRequest方法覆盖响应方法,如下所示:

public function response(array $errors)
{
    return \Response::json($errors);
}