Php 表单请求验证返回空错误消息–;拉威尔5.3

Php 表单请求验证返回空错误消息–;拉威尔5.3,php,laravel,laravel-5,laravel-5.3,Php,Laravel,Laravel 5,Laravel 5.3,我在Laravel中验证期间遇到错误消息问题。我已收到我的自定义请求: class CreateCv extends Request { public function authorize() { return true; } public function rules() { return [ 'name' => 'required', 'surname' =>

我在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:
“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);
    }
}
  • 您可以尝试在CreateCv类中扩展Illumb\Foundation\Http\FormRequest吗

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


不,它不起作用
Request
是一个抽象类,它扩展了
FormRequest
是否使用postman进行测试?尝试添加头Accept:application/json我曾尝试在postman中添加Accept:application/json头,但也没有成功:(您使用的是哪个开发环境和哪个服务器?如果取消注释默认的
return parent::render($request,$e);
并放入Accept:application/json头,然后它将返回一个包含错误消息的对象。