gpt4 book ai didi

javascript - 从 laravel 到 vue.js 验证后如何显示数组响应的错误(基于索引)

转载 作者:行者123 更新时间:2023-11-30 19:25:08 25 4
gpt4 key购买 nike

我正在尝试根据我在 laravel api 中的响应以正确的顺序(基于索引)显示错误。

vue 上显示的错误使用 {{ errors }} :

{ "options.cart.0.request": [ "options.cart.0.request es 无效。"], "options.cart.3.request": [ "options.cart.3.request 无效。"] }

调用 api 的函数 - 我得到的响应状态代码是 422:

        async doOrder () {
axios.post('api/order', this.user).then( response => {
this.$store.dispatch('auth/updateUser', { user : response.data })
}).catch(error => {
if (error.response.status === 404) {
this.$router.push('/404');
}
if (error.response.status === 422 ) {
this.errors = error.response.data.errors
}
});

Laravel 验证:

    public function store(Request $request)
{
$input = $this->validate( $request, [
'options.cart' => 'required|array',
'options.cart.*.code' => 'required|exists:products,code',
'options.cart.*.request' => 'required|in:1,2',
]);

return $request; //Testing

}

Vue v-for :

        <section id="request" v-if="user.options.cart.length > 0">
<div class="card-body" v-for="(object , index) in user.options.cart" :key="object.product_id">
<div class="col-6 col-sm-6 col-md-8 text-md-right form-group" style="padding-top: 5px">
<select class="custom-select my-1 mr-sm-2" :class="errors ? 'is-invalid' : ''" name="request" required v-model="object.request">
<option value="1" :selected="object.request == 1 ">Amostras</option>
<option value="2" :selected="object.request == 2 ">Informações / Cotação</option>
</select>
<div class="invalid-feedback" v-if="errors.errors">Example invalid custom select feedback</div>
</div>
</div>
</section>

最佳答案

你需要像这样使用验证器外观

    $validator = \Validator::make(request()->all(), [
'options.cart' => 'required|array',
'options.cart.*.code' => 'required|exists:products,code',
'options.cart.*.request' => 'required|in:1,2',
]);

if($validator->fails()){
return response()->json(['status' => false, 'data' => $validator->errors()]);
}

关于javascript - 从 laravel 到 vue.js 验证后如何显示数组响应的错误(基于索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com