这是我的请求代码
public function authorize()
{
return true;
}
public function rules()
{
return [
'code'=>'required',
'title'=>'required',
'level'=>'required',
'related'=>'required',
'active'=>'required',
];
}
我想显示AJAX的错误。在stackoverflow中有很多解决此问题的方法,但是没有一个可以解决我的问题 因为它们描述了解决此问题的静态方法,所以我想使用请求文件来放置规则并在使用AJAX的视图中显示错误 请帮助我
var errors = data.responseJSON;
$.each(errors, function(key, value){
$('#' + key)
.closest('.form-group')
.addClass('has-error')
.append('<span class="help-block">' + value + '</span>');
});
答案 0 :(得分:0)
您是否尝试过更新Handler.php或设法响应?
我的建议是修改文件App\Exceptions\Handler.php
。在方法render()
上,您可以添加或替换为以下代码:
public function render($request, Exception $exception)
{
$parent = parent::render($request, $exception);
if(!$request->is('api*'))
{
return $parent;
}
$messages = null;
if(isset($parent->original) && isset($parent->original["errors"]))
{
$messages = $parent->original["errors"];
}
return response()->json(
[
'errors' => [
'status' => 401,
"messages" => $messages
]
], 401
);
}
当您的路线在api
下时,此代码将响应json。
答案 1 :(得分:0)
这是我的解决方案: 我将此代码添加到了我的Ajax中:
$.ajax({
url:myUrl,
type:method,
data : form.serialize(),
success:function(data)
{
// if success run these codes
},
error: function(xhr){
var data = xhr.responseJSON;
if($.isEmptyObject(data.errors) == false) {
$.each(data.errors, function (key, value) {
$('#' + key)
.closest('.form-group')
.addClass('has-error')
.append('<span class="help-block">' + value + '</span>');
});
}
}
});