TypeController.php
public function edit(Product $product, Warranty $warranty, Type $type)
{
$colors = $product->colors()->get();
$price = Type::query()->where('warranty_id', $warranty->id)->pluck('price', 'color_id')->toArray();
return view('Admin.types.edit', compact('product', 'warranty', 'type', 'colors', 'price'));
}
edit.blade.php
<form action="{{ route('products.warranties.types.update', [$product, $warranty, $type]) }}" method="post">
@csrf
@method('PUT')
<input type="hidden" name="new_date" value="{{ $type->date }}">
@foreach($colors as $color)
<div class="mb-3 row">
<label for="color{{ $color->id }}" class="col-sm-2 col-form-label">{{ $color->color_name }}</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="color{{ $color->id }}" name="color[{{ $color->id }}]" value="{{ $price[$color->id] }}">
</div>
</div>
@endforeach
<div class="row">
<div class="col-md-6 mt-3">
<button type="submit" class="btn btn-primary btn-lg">ذخیره</button>
</div>
</div>
</form>
public function update(Product $product, Warranty $warranty, Type $type, Request $request)
{
$date = $request->post('new_date');
$timestamp = Jalalian::fromFormat('Y/m/d', $date)->getTimestamp();
$colors = $request->post('color');
$data = [];
foreach ($colors as $key => $value) {
$data[] = [
'warranty_id' => $warranty->id,
'color_id' => $key,
'date' => $date,
'time' => $timestamp,
'price' => $value,
];
}
$type->update($data);
return redirect()->route('products.warranties.index', [$product->id, $warranty->id]);
}
When I add dd($data); I see this message.
public function update(Product $product, Warranty $warranty, Type $type, Request $request)
{
$date = $request->post('new_date');
$timestamp = Jalalian::fromFormat('Y/m/d', $date)->getTimestamp();
$colors = $request->post('color');
$data = [];
foreach ($colors as $key => $value) {
$data[] = [
'warranty_id' => $warranty->id,
'color_id' => $key,
'date' => $date,
'time' => $timestamp,
'price' => $value,
];
}
dd($data);
array:2 [▼
0 => array:5 [▼
"warranty_id" => 1
"color_id" => 1
"date" => "1402/01/01"
"time" => 1679356800
"price" => "225000"
]
1 => array:5 [▼
"warranty_id" => 1
"color_id" => 3
"date" => "1402/01/01"
"time" => 1679356800
"price" => "552000"
]
]
It has an error.
SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list' (SQL: update types set 0 = {"warranty_id":1,"color_id":1,"date":"1402/01/01","time":1679356800,"price":"225000"}, 1 = {"warranty_id":1,"color_id":3,"date":"1402/01/01","time":1679356800,"price":"552000"}, types.updated_at = 2023-03-20 11:53:42 where id = 1)