我正在使用Nova仪表板进行项目。由于某些原因,我看不到验证错误消息。
如果存在验证错误,我可以在浏览器控制台中将其视为异常。但是在Nova UI中却没有。
如果正确输入了表格的所有字段,我会看到成功消息。
我是Nova的新手,有人可以帮助我调试此问题吗?我的意思是我不知道该去哪里寻找这个问题
来自浏览器的错误跟踪:
{
"errors":"Sorry, something went wrong.",
"exception":"Illuminate\\Validation\\ValidationException",
"message":"The given data was invalid.",
"trace":[{
"file":"\/home\/ausvacs\/public_html\/nova\/src\/PerformsValidation.php",
"line":18,
"function":"validate",
"class":"Illuminate\\Validation\\Validator",
"type":"->",
"args":[]
}]
}
Agency nova模型的字段方法(表名称:agency):
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('Name')
->sortable()
->rules('required', 'string'),
];
}
浏览器控制台错误:
浏览器网络标签上的异常:
答案 0 :(得分:0)
问题出在处理程序(app / Exceptions / Handler.php)中。不知道以前的开发人员是否更新了此功能。无论如何,此功能中的问题是:
public function render($request, Exception $exception)
{
if ($request->ajax() || $request->wantsJson()) {
$response = ['errors' => 'Sorry, something went wrong.'];
$status = 400;
if ($this->isHttpException($exception)) {
$status = $exception->getStatusCode();
}
if (get_class($exception) == 'Illuminate\Validation\ValidationException') {
$response['validation'] = $exception->validator->errors();
}
return response()->json($response, $status);
}
return parent::render($request, $exception);
}
当我更新代码以在验证异常的情况下将错误代码返回为422并将错误推入响应的“错误”索引而不是“验证”索引时,该问题已解决。