you can try transfer the computed data to scope variable inside of your axios method. methods... const myVal = this.numberOfDays axios.post.... dates: myVal, ...
Aug 4, 2019
12
Level 14
Form dosen't submit all data
I have a method that uses Axios to post a form but I'm trying to use a computed prop in that method but it isn't picking it up.
This is the error:
General error: 1364 Field 'dates' doesn't have a default value (SQL: insert into `booking`
Here is the script:
<script>
import axios from 'axios';
import kennitala from 'kennitala';
import moment from 'moment';
import payment from './Payment.vue';
export default {
components: { payment },
data() {
return {
errors: [],
services: [],
selectedValue: null,
step: 1,
booking:{
carNumber: null,
carSize: "Bíltegund",
carType: null,
carSubtype: null,
carColor: null,
name: null,
socialId: null,
email: null,
phone: null,
dropOffDate: null,
dropOffTime: "Hvenær mættiru á Leifstöð",
pickUpDate: null,
pickUpTime: "Hvenær viltu sækja bílinn?",
flightNumber: null,
},
discount: null,
showPayment: false,
price: 4500,
start: null,
end: null
}
},
methods: {
createBooking() {
axios.post('/api/booking/create', {
carNumber: this.booking.carNumber,
carSize: this.booking.carSize,
carType: this.booking.carType,
carSubtype: this.booking.carSubtype,
carColor: this.booking.carColor,
name: this.booking.name,
socialId: this.booking.socialId,
email: this.booking.email,
phone: this.booking.phone,
dropOffDate: moment(this.selectedValue.start, "MM/DD/YYYY"),
dropOffTime: this.booking.dropOffTime,
pickUpDate: moment(this.selectedValue.end, "MM/DD/YYYY"),
pickUpTime: this.booking.pickUpTime,
flightNumber: this.booking.flightNumber,
dates: this.numberOfDays,
priceForDays: this.priceForDays,
totalPrice: this.price,
finalPrice: 100
})
.catch(error => {
error.response.data;
})
.then(function (response) {})
}
},
computed: {
numberOfDays: function() {
this.start = moment(this.selectedValue.start);
this.end = moment(this.selectedValue.end);
return Math.abs(this.start.diff(this.end, 'days'));
}
}
}
Level 14
Please or to participate in this conversation.