Laravel 模型一对多更新问题
product
模型建立了一对多的关联关系
//商品拥有多张缩略图
public function images()
{
return $this->hasMany(ProductImage::class);
}
新建商品一对多关联插入
public function store(ProductPost $request)
{
try {
DB::transaction(function () use ($request) {
//插入数据到商品表
$product = Product::create($request->all());
//插入数据到商品描述表
$product->description()->create([
'description' => $request->input('description'),
'editor-html-code' => $request->input('editor-html-code')
]);
//插入数据到商品图片表
$images = [];
foreach ($request->img as $img) {
$images[] = new ProductImage(['image' => $img]);
}
$product->images()->saveMany($images);
//插入数据到商品参数表
$product->param()->create([
'param' => serialize($request->param)
]);
}, 5);
} catch (\Exception $e) {
return back()->withInput()->with('danger', $e->getMessage());
}
return redirect(route('admin.mall.product.index'))->with('success', '新增商品成功');
}
//更新商品属性
public function update(ProductPost $request,$id)
{
$product=Product::find($id);
//更改商品表
$product->update($request->all());
//更改商品描述表
$product->description()->update([
'description' => $request->input('description'),
'editor-html-code' => $request->input('editor-html-code')
]);
//更改商品图片表
$product->images()->update([
//????????
]);
//更改商品参数
$product->param()->update([
'param' => serialize($request->param)
]);
}
推荐文章: