I am still learning Vue Js and trying to implement using Laravel APIs.
In the Product Controller when I am passing return response()->json($product); and displaying in Vue Js it works.
But when I have do it for two - return response()->json([$product, $product_materials]);
I am unable to display
<template>
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<table class="table table-bordered table-striped">
<tbody>
<tr style="height: 23px">
<td style="width: 75px; height: 23px" colspan="5">
Product Details
</td>
</tr>
<tr style="height: 23px">
<td style="width: 15.5px; height: 23px">ID</td>
<td style="width: 14.5px; height: 23px">{{ product.id }}</td>
<td style="width: 45px; height: 23px" colspan="3"> </td>
</tr>
<tr style="height: 43px">
<td style="width: 15.5px; height: 43px">Name</td>
<td style="width: 14.5px; height: 43px">{{ product.name }}</td>
<td style="width: 15px; height: 43px">Quantity</td>
<td style="width: 30px; height: 43px" colspan="2">
{{ product.quantity }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 15.5px; height: 23px">Description</td>
<td style="width: 59.5px; height: 23px" colspan="4">
{{ product.description }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 75px; height: 23px" colspan="5">
Product Material
</td>
</tr>
<tr style="height: 23px">
<td style="width: 15.5px; height: 23px">ID</td>
<td style="width: 14.5px; height: 23px">Description</td>
<td style="width: 15px; height: 23px">Quantity</td>
<td style="width: 15px; height: 23px">Rate</td>
<td style="width: 15px; height: 23px">Amount</td>
</tr>
<tr
style="height: 23.5px"
v-for="product_material in product_materials"
:key="product_material.id"
>
<td style="width: 15.5px; height: 23.5px">
{{ product_material.id }}
</td>
<td style="width: 14.5px; height: 23.5px">
{{ product_material.description }}
</td>
<td style="width: 15px; height: 23.5px">
{{ product_material.quantity }}
</td>
<td style="width: 15px; height: 23.5px">
{{ product_material.rate }}
</td>
<td style="width: 15px; height: 23.5px">
{{ product_material.amount }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="2">
Total Material Items
</td>
<td style="width: 15px; height: 23px">
{{ product.material_items }}
</td>
<td style="width: 15px; height: 23px">Material Cost</td>
<td style="width: 15px; height: 23px">
{{ product.material_cost }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="2">Waste %</td>
<td style="width: 15px; height: 23px">
{{ product.waste_percentage }}
</td>
<td style="width: 15px; height: 23px">Waste Amount</td>
<td style="width: 15px; height: 23px">
{{ product.waste_amount }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="2">Labour cost %</td>
<td style="width: 15px; height: 23px">
{{ product.labour_percentage }}
</td>
<td style="width: 15px; height: 23px">Labour Cost</td>
<td style="width: 15px; height: 23px">
{{ product.labour_amount }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="2"> </td>
<td style="width: 30px; height: 23px" colspan="2">
Equipment Cost
</td>
<td style="width: 15px; height: 23px">
{{ product.equipment_cost }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="2">Other Cost %</td>
<td style="width: 15px; height: 23px">
{{ product.other_percentage }}
</td>
<td style="width: 15px; height: 23px">Other Cost</td>
<td style="width: 15px; height: 23px">
{{ product.other_amount }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="2">Margin %</td>
<td style="width: 15px; height: 23px">
{{ product.margin_percentage }}
</td>
<td style="width: 15px; height: 23px">Margin Amount</td>
<td style="width: 15px; height: 23px">
{{ product.margin_amount }}
</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="3"> </td>
<td style="width: 15px; height: 23px">Sub Total</td>
<td style="width: 15px; height: 23px">{{ product.sub_total }}</td>
</tr>
<tr style="height: 23px">
<td style="width: 30px; height: 23px" colspan="3"> </td>
<td style="width: 15px; height: 23px">Total</td>
<td style="width: 15px; height: 23px">{{ product.amount }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script>
export default {
mounted() {
console.log("Component mounted.");
},
data() {
return { product: {}, product_materials: [] };
},
created() {
this.axios
.get(`/api/products/calculate/${this.$route.params.id}`)
.then((res) => {
this.product = res.data;
});
},
};
</script>
I just want to know how to fix this and handle this two when passing through json. Thank you in advance.
{{product.product.name}}this works but cannot loop product materials The data that is passing through is { product: {}, product_materials: [{}] }