商品创建后,再次编辑,直接找到最低价格的 SKU 移除后保存,商品数据库价格不会更新,请问怎么解决?谢谢!
情况如下:商品创建后,再次点击编辑,直接找到最低价格的SKU移除后保存,商品数据库价格不会更新,其实移除别的价格也不会更新,只是移除最低价格时比较明显看到结果。请问怎么解决?谢谢!
尝试过如下 方案,利用保存后事件回调,但不成功。
$form->saved(function (Form $form) {
$form->model()->price = collect($form->model()->skus())->min('price');
'or'
$form->model()->price = collect($form->model()->skus)->min('price');
'or'
$form->model()->price = collect($form->skus)->min('price');
});
追查了一下 Laravel-Admin 的代码,找到问题根源,解决方案:
当我们在前端移除一个 SKU 的之后,点击保存按钮时 Laravel-Admin 仍然会将被删除的 SKU 提交上去,但是会添加一个
_remove_=1
的字段:如图:正常的 SKU 的
_remove_
字段是 0,因此我们在查找最低价格时只需要查询_remove_=0
的 SKU 即可。