Я использую Laravel 5.7
& VueJs 2.5.*
...
Я хочу сохранить свои данные TicketInvoice
и TicketInvoiceItems
в базе данных. Когда я отправляю форму счета-фактуры, TicketInvoice
хранилище данных в DB
, но TicketInvoiceItems
хранилище данных как ноль, независимо от того, заполняю я это или нет, также у меня есть динамические поля для TicketInvoiceItems
, потому что TicketInvoice
hasMany()
TicketInvoiceItems
, поэтому независимо от того, сколько строк я добавлю в строку, заполните и отправьте, только одна запись строки хранится в DB
, и, как я уже говорил выше, все поля элементов сохраняются как нулевые.
Вот мой store
метод TicketInvoiceController
:
public function store(Request $request) {
$ticketInvoiceItems = collect();
$ticketInvoiceItems - > push(new TicketInvoiceItems([
'ticket_invoice_id' => $request['ticket_invoice_id'],
'passenger_name' => $request['passenger_name'],
'ticket_no' => $request['ticket_no'],
'departure_date' => $request['departure_date'],
'fares' => $request['fares'],
'sub_total' => $request['sub_total']
]));
$ticketInvoice = TicketInvoice::create([
'vendor_id' => $request['vendor_id'],
'ticket_invoice_no' => $request['ticket_invoice_no'],
'ticket_invoice_date' => $request['ticket_invoice_date'],
'ticket_invoice_fares_total' => $request['ticket_invoice_fares_total'],
'ticket_invoice_grand_total' => $request['ticket_invoice_grand_total'],
]);
$ticketInvoice - > ticketInvoiceItems() - > saveMany($ticketInvoiceItems);
}
Вот мой VueJs
код, я не знал, допустил ли я здесь какие-либо ошибки, просмотрите его:
< script >
export default {
data() {
return {
ticketInvoices: {},
vendors: null,
form: new Form({
id: "",
vendor_id: "",
ticket_invoice_no: "",
ticket_invoice_date: "",
ticket_invoice_fares_total: "",
ticket_invoice_grand_total: "",
ticketInvoiceItems: [{
id: "",
ticket_invoice_id: "",
passenger_name: "",
ticket_no: "",
departure_date: "",
fares: "",
sub_total: ""
}]
})
};
},
methods: {
createTicketInvoice() {
this.form
.post("api/ticket-invoice")
.then(() => {
Fire.$emit("RefreshTable");
})
.catch(() => {
swal("Failed!", "There was something wrong.", "warning");
});
},
addItems() {
this.form.ticketInvoiceItems.push({
id: "",
ticket_invoice_id: "",
passenger_name: "",
ticket_no: "",
departure_date: "",
fares: "",
sub_total: ""
});
},
removeItems(pos) {
this.form.ticketInvoiceItems.splice(pos, 1);
},
<
/script>