#php #laravel
Вопрос:
У меня есть две таблицы продуктов и цветов.
Я хочу хранить несколько строк в нескольких таблицах в своей базе данных. Мой контроллер в настоящее время не хранит несколько значений, он сохраняет только одну строку в таблицах «Мои товары» и «списки товаров».
Как делать ставки? Если бы он был пуст.
лезвие
<div class="row no-gutters mb-1">
<div class="col-md-3">
<label for="color_name" class="ml-1">color_name:</label>
<input type="text" id="color_name" name="color_name[]" class="form-control w-auto d-inline">
</div>
<div class="col-md-3">
<label for="color_code" class="ml-1">color_code:</label>
<input type="text" id="color_code" name="color_code[]" class="form-control w-75 d-inline jscolor">
</div>
<div class="col-md-1">
<a onclick="addColor()" class="btn btn-info"><i class="fas fa-plus"></i></a>
<a onclick="deleteColor()" class="btn btn-danger"><i class="fas fa-times"></i></a>
</div>
</div>
ProductController.php
public function store(ProductRequest $request)
{
$product = Product::create([
'title' => $request->title,
'latin' => $request->latin,
'price' => $request->price,
'discount' => $request->discount,
'body' => $request->body,
'keywords' => $request->keywords,
'descriptions' => $request->descriptions,
]);
$product->categories()->attach($request->category_id);
$colorCodes = $request->color_code;
$colorNames = $request->color_name;
foreach ($colorCodes as $key => $color_code) {
if ($request->color_code != null amp;amp; $request->color_name != null) {
$color = new Color;
$color->product_id = $product->id;
$color->color_code = $color_code;
$color->color_name = $colorNames[$key];
$color->save();
}
}
return redirect()->route('products.index');
}
Чтобы определить, есть ли какие-либо результаты, вы можете выполнить одно из следующих действий:
SQLSTATE[23000]: Нарушение ограничения целостности: Столбец 1048 «имя цвета» не может быть пустым (SQL: вставить в
colors
(product_id
,color_code
,color_name
,updated_at
,created_at
) значения (20, #FFFFFF, ?, 2021-07-29 18:38:17, 2021-07-29 18:38:17))
Комментарии:
1. Вы отправляете
?
как имя цвета2.
$colorNames[$key]
очевидно, равно нулю. Вы проверяете$request->color_name
, не является ли значение null, но, вероятно, вам следует проверить,$colorNames[$key]
не является ли оно вместо этого значением null.3. Вы можете отправить полный код?