表单请求验证返回空错误消息 – 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!',
        ];
    }
}

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

class CvController extends Controller
{
    public function create(RequestsCreateCv $request) {
        return response()->json(['ok' => true], 200);
    }
}

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

编辑这是处理程序.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类中尝试扩展Illuminate\Foundation\Http\FormRequest吗?

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

最新更新