param(); $model = $model->scope('where', $param); $data = $model->paginate($this->admin['per_page'], false, ['query'=>$request->get()]); //关键词,排序等赋值 $this->assign($request->get()); $this->assign([ 'data' => $data, 'page' => $data->render(), 'total' => $data->total(), ]); return $this->fetch(); } //添加 public function add(Request $request, GoodsAttrCategory $model,GoodsAttr $gamodel, GoodsAttrCategoryValidate $validate) { if ($request->isPost()) { $param = $request->param(); $validate_result = $validate->scene('add')->check($param); if (!$validate_result) { return error($validate->getError()); } $attrcategory['name']=$param['name']; // 启动事务 $model->startTrans(); try{ $result = $model::create($attrcategory); $class_id=$result->id; $field_data = []; foreach ($param['attr_name'] as $key => $value) { $field_data[] = [ 'attr_name' => $param['attr_name'][$key][0], 'attr_class_id' => $class_id, 'attr_index' =>0, 'attr_values' =>'', 'sort_order' => $param['sort_order'][$key][0] ?? 255, ]; } $gamodel::insertAll($field_data); // 提交事务 $model->commit(); }catch(\Exception $e){ // 回滚事务 $model->rollback(); return error('添加失败'); } $url = URL_BACK; if(isset($param['_create']) && $param['_create']==1){ $url = URL_RELOAD; } return success('添加成功',$url); } $this->assign([ 'gamodel_count'=>0, ]); return $this->fetch(); } //修改 public function edit($id, Request $request, GoodsAttrCategory $model,GoodsAttr $gamodel, GoodsAttrCategoryValidate $validate) { $data = $model::get($id); if ($request->isPost()) { $param = $request->param(); $validate_result = $validate->scene('edit')->check($param); if (!$validate_result) { return error($validate->getError()); } $attrcategory['name']=$param['name']; // 启动事务 $model->startTrans(); try{ $model->where('id',$id)->update($attrcategory); $where[]=array('attr_class_id','=',$id); Db::table('goods_attr')->where($where)->delete(); $field_data = []; foreach ($param['attr_name'] as $key => $value) { $field_data[] = [ 'attr_name' => $param['attr_name'][$key][0], 'attr_class_id' => $id, 'attr_index' =>0, 'attr_values' =>'', 'sort_order' => $param['sort_order'][$key][0] ?? 255, ]; } $gamodel::insertAll($field_data); // 提交事务 $model->commit(); }catch(\Exception $e){ $msg='提交失败'; // 回滚事务 $model->rollback(); return error($msg);// } $result = $data->save($param); return $result ? success() : error(); } $gamodel_list=$gamodel->field('attr_name,sort_order')->where(array('attr_class_id'=>$id))->select(); $gamodel_l=array(); foreach ($gamodel_list as $k1 =>$v1) { $key=$k1+1; $gamodel_l[$key]['attr_name']=$v1['attr_name']; $gamodel_l[$key]['sort_order']=$v1['sort_order']; } $this->assign([ 'data' => $data, 'gamodel_list'=>$gamodel_l, 'gamodel_count'=>count($gamodel_list), ]); return $this->fetch('add'); } //删除 public function del($id, GoodsAttrCategory $model) { if (count($model->noDeletionId) > 0) { if (is_array($id)) { if (array_intersect($model->noDeletionId, $id)) { return error('ID为' . implode(',', $model->noDeletionId) . '的数据无法删除'); } } else if (in_array($id, $model->noDeletionId)) { return error('ID为' . $id . '的数据无法删除'); } } if ($model->softDelete) { $result = $model->whereIn('id', $id)->useSoftDelete('delete_time', time())->delete(); } else { $result = $model->whereIn('id', $id)->delete(); } return $result ? success('操作成功', URL_RELOAD) : error(); } //获取规格分类下的规格 public function get_attr() { } }