我没有得到错误,即使我已经使用验证()方法使用axios
这是我的控制器
public function store(Request $request)
{
$fields = $request->validate([
'product_name' => 'required',
'product_cost' => 'required | integer',
'product_selling' => 'required | integer',
'product_stock' => 'required | integer',
]);
Product::create([
'name' => $fields['product_name'],
'cost' => $fields['product_cost'],
'selling' => $fields['product_selling'],
'stock' => $fields['product_stock'],
]); }
这是我的Vue文件
const productState = reactive({
product_name: "",
product_cost: "",
product_markup: "",
markup_type: "Markup by price",
product_selling: "",
product_stock: "",
returned_errors: [],
});
axios .post("api/products", productState)
.then((response) => {
console.log(response);
})
.catch((error) => console.log(error.response.data.errors));
即使有错误,它仍然返回响应。
try {
$fields = $request->validate([
'product_name' => 'required',
'product_cost' => 'required | integer',
'product_selling' => 'required | integer',
'product_stock' => 'required | integer',]);
} catch (ValidationException $ex) {
return response()->json(['errors' =>$ex->errors()], 422); //what ever error format that you desire
}
如果您正在发送API请求,您应该try catch
$request->validate
并发送自定义响应。
但我不建议使用$request->validate
API请求,你可以去表单请求或Validator::make()
为API请求提供更大的灵活性,你也可以在Handler.php
文件中捕获验证异常,并在那里处理它。
已经有很多文章发表了,所以尝试研究"API请求的larlevel验证"。(我不打算链接到具体的文章,你可以在Youtube视频中找到中等文章到博客文章)
它将帮助你从整体上理解Laravel的验证过程。
你试过了吗:
error.response.data.error
或者只是记录错误,看看结构是什么
Axios返回的错误并不总是具有error.response
属性。您可能应该在Axios文档中按照这个示例构建错误处理。
希望对你有帮助。