在Laravel 5.1项目中
我将此Ajax响应视为错误
{
"success":false,
"errors":{
"drugs_power":["The drugs power field is required."]
}
}
我需要像这张图片一样的错误验证 我可以通过laravel验证器通过此代码(从控制器返回),
$this->validate($request, [
'drugs_name' => 'required|unique:drugs',
'drugs_group_name' => 'required',
'drugs_power' => 'required'
]);
通过此代码在blade.php中显示
<div class="form-group{{ $errors->has('drugs_power') ? ' has-error' : '' }}">
<label for="userName">Power</label>
<div>
<input type="text" class="form-control" name="drugs_power"
value="{{old('drugs_power')}}">
@if ($errors->has('drugs_power'))
<span class="help-block">
<strong>{{ $errors->first('drugs_power') }}</strong>
</span>
@endif
</div>
</div>
我怎样才能像那样进行ajax + laravel验证?
答案 0 :(得分:1)
将第3个参数传递给validate
可以指定自定义消息,如here所示。你可以使用&#34; dot&#34;用于指定特定字段的错误消息的表示法。
$this->validate($request, [
'drugs_name' => 'required|unique:drugs',
'drugs_group_name' => 'required',
'drugs_power' => 'required'
], [
'drugs_power.required' => 'Your custom message here.'
]);
答案 1 :(得分:0)
假设您正确使用Laravel请求对象,您将在浏览器中收到响应代码422.
如果你想全局捕获它,你可以扩展默认的ajax行为, 将以下代码放入JS。
$(function () {
$.ajaxSetup({
statusCode: {
422: function (data) {
$.each(data.responseJSON, function (k, v) {
// do something with the error
})
}
}
});
});
答案 2 :(得分:0)
您正在寻找https://github.com/whipsterCZ/laravel-ajax
它完全符合您的要求以及更多!
通过ajax发送和验证表单非常简单 - 无需配置
HTML
Variable.NET_BOUNDARIES
控制器
<form action="" class="ajax">...</form>
验证表单(通过自定义FormRequest)并显示错误(在errorBag中或在输入正上方)