【发布时间】:2019-11-29 12:08:45
【问题描述】:
我正在插入一个包含多个输入的数组。但是当我 dd 它或创建它时,它不会插入或返回任何值。在这种情况下如何使用创建?我是 laravel 的新手。
foreach ($data['sku'] as $key => $val) {
$attrCountSKU = ProductsAttribute::where('sku', $val)->count();
if ($attrCountSKU > 0) {
return back()->with('error', 'SKU already exists for this product! Please input another SKU.');
}
$attrCountSizes = ProductsAttribute::where(['product_id' => $product->id, 'size' => $data['size'][$key]])->count();
if ($attrCountSizes > 0) {
return back()->with('error', 'Size already exists for this product! Please input another Size.');
}
$attribute = new ProductsAttribute;
$attribute->product_id = $product->id;
$attribute->sku = $val;
$attribute->size = $data['size'][$key];
$attribute->price = $data['price'][$key];
$attribute->stock = $data['stock'][$key];
dd($attribute);
dd($attribute->create());
}
【问题讨论】:
-
这是我上面的验证器 foreach $data = request()->validate([ 'sku.*' => 'required', 'price.*' => 'required', 'size.* ' => '必需', '库存.*' => '必需', ]);
-
总是把你的代码放在问题中。你可以使用编辑链接来做到这一点。
-
这超出了问题的范围,但是如果您在一个请求中添加多个项目,您应该考虑如果一个插入因任何原因失败可能会发生什么。将插入包装在事务中,并在任何失败时回滚它们,这可能是谨慎的做法,以确保在一个失败并重新提交数据时不会出现重复的实例。