Skip to content
关注公众号,获取新课通知

修改商品类型


控制器 app/controller/admin/GoodsType.php

php
public function update(Request $request, $id)
{
    $param = $request->param();
    $res = $request->Model->save($param);
    return showSuccess($res);
}

模型 app/model/GoodsType.php

php
// 修改前
   public static function onBeforeUpdate($goodsType){
   	// 更新属性
   	$value_list = request()->param('value_list');
   	if ($value_list) {
   		// 清除之前属性
        $goodsType->goodsTypeValues->delete();
        // 写入新属性
        $new_value_list = array_map(function($item) use($goodsType){
		    unset($item['id']);
			$item['goods_type_id'] = $goodsType->id;
		    return $item;
		},$value_list);
		(new GoodsTypeValue())->saveAll($new_value_list);
   	}
   	// 更新skus
       $skusId = request()->param('skus_id');
       if ($skusId) {
       	// 删除已有skusid
		SkusGoodsType::where('goods_type_id',$goodsType->id)->delete();
        $new_skus = array_map(function ($id) use($goodsType){
        	return [
        		'skus_id'=>$id,
        		'goods_type_id'=>$goodsType->id
        	];
        },$skusId);
		(new SkusGoodsType)->saveAll($new_skus);
       }
   }

验证器 app/validate/admin/GoodsType.php

php
// 验证规则
protected $rule = [
	'id'=>'require|integer|>:0|isExist:GoodsType',
    'status'=>'require|in:0,1',
    'name'=>'require',
    'order'=>'integer|>=:0',
    'skus_id'=>'array',
    'value_list'=>'array',
];

protected $scene = [
    ...
    'update'=>['id','name','status','order','skus_id','value_list'],
];

路由 router/admin.php

php
Route::post('goods_type/:id','admin.GoodsType/update');