Я использую vue и laravel, а также использую sweet alert 2 для своих сообщений об ошибках, и я пытаюсь отобразить сообщение об ошибке, если статус моего продукта не одобрен или пуст, но он не отображается и я ничего не получаю в своей консоли, но на вкладке сети появляется ошибка.
Вот мой код
<template>
<div>
<div class = "row justify-content-center my-5">
<div class = "col-md-6">
<div class = "form">
<div class = "card">
<div class = "card-body">
<div class = "row">
<div class = "col-md-5">
<div class = "form-group">
<label>Name</label>
<input type = "text" class = "form-control" v-model = "product.name">
</div>
</div>
</div>
<div class = "form-group">
<label for = "description">Description</label>
<textarea class = "form-control" id = "description" name = "description" v-model = "product.description">{{ product.description }}</textarea>
</div>
</div>
<div class = "card-footer">
<button type = "submit" class = "btn btn-success" @click = "updateProduct()">Update Product</button>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: ['product'],
data() {
return {
}
},
methods: {
updateProduct(){
axios.put('/api/admin/products/'+this.product.id, {
'name': this.product.name,
'description': this.product.description
}).then(response => {
Swal.fire(
'Changes Saved',
'The product details have been updated',
'success'
)
}).catch(error => {
console.info(error);
Swal.fire(
'Oops!',
err.message,
'error'
)
})
}
},
mounted(){
}
}
</script>
Моя функция
public function updateProduct(Product $product)
{
$outstanding = Product::where('status', 'pending')
->first();
if (!empty($outstanding->status) && $outstanding->status != 'Approved')
{
return [
'error' => "This product is not approved"
];
}
}
Добавьте к нему код состояния ошибки, используя функцию response()
. Код состояния по умолчанию — 200, что означает успех в axios. Вам нужно сообщить axios, что это ошибка, и поймать ее. Таким образом, предоставление кода состояния ошибки сделает это за вас. подробнее
if (!empty($outstanding->status) && $outstanding->status != 'Approved')
{
return response([
'error' => "This product is not approved"
], 400);
}
Кроме того, у вас есть опечатка в коде axios. Изменить err
на error
.catch(error => {
console.info(error);
Swal.fire(
'Oops!',
error.response.data.error,
'error'
)
})
Где вы взяли эту ошибку? на вашей консоли?
Request failed with status code 400
появляется во всплывающем окне с ласточкой. Сообщение об ошибке, которое я хочу, чтобы "This product is not approved"
отображалось на вкладке моей сети
Я не получаю никаких ошибок, и в моей консоли у меня есть undefined
Хорошо. опустите этот трейлинг error
и скажите мне, что вы получите, когда сделаете console.info(error.responseJSON)
Давайте продолжим обсуждение в чате.
Это работает, но я получаю это сообщение об ошибке
Request failed with status code 400
вместо того, которое я хочу