我正试图将一些表单数据发送到后端,但Laravel验证不会返回422状态的错误。
公理
简单的axios将请求发送到URL,并希望在请求周期中发现错误时返回响应。
axios.post(this.formURL, formData)
.then((response) => {
console.log(response)
})
.catch((err) => {
console.log(err)
})
Laravel
我已经设置了Laravel验证来验证一些表单输入,如果验证失败,则返回422。
try {
$this->validate(request(), [
'chapter_id' => 'required',
'brother_id' => 'required'
]);
Minute::forceCreate(request());
return response()->json([
'status' => 'success',
'message' => 'Minute Created',
], 201);
}
catch (ValidationException $exception) {
return response()->json([
'status' => 'error',
'message' => 'Error',
'errors' => $exception->errors(),
], 422);
}
回答
给出了一个响应,但当我试图对其进行控制台时,控制台中没有定义:
{
"status":"error",
"message":"Error",
"errors":{
"brother_id":[
"The brother_id field is required."
],
"chapter_id":[
"The chapter_id field is required."
]
}
}
我在这里遇到过这个问题https://github.com/axios/axios/issues/960#issuecomment-398269712但无法使用他们的解决方法解决这个问题。以前有人遇到过这个问题吗?这可能是身份验证关系吗(不太可能),这是我实现的最后一件事。
决议
这个问题解决了。在实现axios拦截器以捕获身份验证错误时,我没有将错误返回给Promise。
axios.interceptors.response.use(null, (error) => {
if ( error.response.status == 401 ) {
store.commit('logout')
router.push('/login')
}
return Promise.reject(error)
})
返回Promise.reject(错误)
丢失。谢谢你们的帮助伙计们!
我认为信息非常清楚(“需要章节id字段”)。问题似乎不是axios的结果,而是相关的数据值不会传递到服务器。请检查数据是否通过
return $ request;
服务器端的命令(控制器的启动)。如果数据没有传输,请仔细检查前端。如果传输数据,请尝试更改范围。
try {
$this->validate(request(), [
'chapter_id' => 'required',
'brother_id' => 'required'
]);
}
catch (ValidationException $exception) {
return response()->json([
'status' => 'error',
'message' => 'Error',
'errors' => $exception->errors(),
], 422);
}
Minute::forceCreate(request());
return response()->json([
'status' => 'success',
'message' => 'Minute Created',
], 201);
所以调试它。
本文向大家介绍Laravel框架表单验证详解,包括了Laravel框架表单验证详解的使用技巧和注意事项,需要的朋友参考一下 基础验证例子 传递给 make 函数的第一个参数是待验证的数据,第二个参数是对该数据需要应用的验证规则。 多个验证规则可以通过 "|" 字符进行隔开,或者作为数组的一个单独的元素。 通过数组指定验证规则 一旦一个 Validator 实例被创建,可以使用 fails (或者
本文向大家介绍ionic使用angularjs表单验证(模板验证),包括了ionic使用angularjs表单验证(模板验证)的使用技巧和注意事项,需要的朋友参考一下 1什么是模板验证 顾名思义模板验证就是通过一些angularjs的属性来在html标签中验证,为了往模板驱动表单中添加验证机制,你要添加一些验证属性,就像原生的 HTML 表单验证器。 Angular 会用指令来匹配这些具有验证功能
我正在尝试配置laravel的auth以适合我的db。但无论我做什么,都会覆盖像或在LoginController中,它忽略所有内容。有人知道如何用不同的数据库参数化laravel的身份吗? 以下是我在LoginController中更改的内容: 在用户模型中: 编辑:config/auth.php: ]; LoginController: 名称空间App\Http\Controllers\Aut
我试图建立一个认证系统与Laravel 4与Facebook登录。我正在使用Laravel 4的madewith love/laravel-oAuth2包。 当然,当用户登录Facebook时,没有密码可以添加到我的数据库中。但是,我正在尝试检查数据库中是否已经有用户id,以确定是否应该创建一个新实体,或者只是登录当前实体。我想使用Auth命令来实现这一点。我有一张叫做“粉丝”的桌子。 这就是我正
我想使用多身份验证Laravel,但只有一个表"用户" 我如何实现这一点?
问题内容: 我有一个有关表单验证的问题。在以下情况下,它对我不起作用: 我有一个全局表单,在表单内部,动态字段是使用指令呈现的。基于我的字段类型的指令会将最新编译的指令附加到末日。 这是指令: 我在表单中有一个按钮,当表单无效时必须将其禁用。问题是该按钮永远不会被禁用。 html代码: 我的jsFindle链接:http : //jsfiddle.net/8rz6U/1/ 这是我在应用程序中的问题