我在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);
}
}
答案 0 :(得分:0)
您可以尝试使用CreateCv类来扩展Illuminate \ Foundation \ Http \ FormRequest。
我最近在为Web应用程序创建API时遇到过这种情况,每次我在没有Accept application / json标头的情况下测试验证字段时,errors对象(我自定义ValidationException以返回错误对象)总是空。