表单请求验证返回空错误消息 - Laravel 5.3

时间:2017-04-02 15:39:15

标签: php laravel laravel-5 laravel-5.3

我在Laravel验证期间遇到错误消息问题。我收到了自定义请求:

class CreateCv extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name' => 'required',
            'surname' => 'required',
        ];
    }

    public function messages()
    {
        return [
            'name.required' => 'Fill the name!',
            'surname.required'  => 'Fill the surname!',
        ];
    }
}

然后我有一个带有create方法的控制器:

class CvController extends Controller
{

    public function create(Requests\CreateCv $request) {
        return response()->json(['ok' => true], 200);
    }
}

如果所有内容都已填满,则会正确返回json响应"ok" : true。但是当缺少某些东西时,它会返回空的消息:"msg": ""。是什么导致了这个问题?

修改 这里是handler.php文件

class Handler extends ExceptionHandler
{
    protected $dontReport = [
        AuthorizationException::class,
        HttpException::class,
        ModelNotFoundException::class,
        //ValidationException::class,
    ];

    public function report(Exception $e)
    {
        parent::report($e);
    }

    public function render($request, Exception $e)
    {
        return $e;
        //return response()->json(['msg' => $e->getMessage()], 422);
        //return parent::render($request, $e);
    }
}

1 个答案:

答案 0 :(得分:0)

  • 您可以尝试使用CreateCv类来扩展Illuminate \ Foundation \ Http \ FormRequest。

  • 我最近在为Web应用程序创建API时遇到过这种情况,每次我在没有Accept application / json标头的情况下测试验证字段时,errors对象(我自定义ValidationException以返回错误对象)总是空。