@Terry #4楼 这样的话,每一个都重写一次,而且重写过的方法,vender后期升级也一样是被重写过了的。 比如我因为引入多语言需要重写了一个方法
public function saveCategory()
{
$cate_id = Yii::$service->category->GetPrimaryKey();
$editFormData = Yii::$app->request->post('editFormData');
if (isset($editFormData)) {
$defaultLangName = Yii::$service->fecshoplang->GetDefaultLangAttrName('name');
if (!isset($editFormData['name'][$defaultLangName])
|| !($editFormData['name'][$defaultLangName])
) {
echo json_encode([
'statusCode'=>'300',
'message'=>'分类的默认语言name不能为空',
]);
exit;
}
$thumbnail_image = CRequest::param('thumbnail_image');
$image = CRequest::param('image');
if ($thumbnail_image) {
$editFormData['thumbnail_image'] = $thumbnail_image;
}
if ($image) {
$editFormData['image'] = $image;
}
$product_select_info = CRequest::param('product_select_info');
$product_unselect_info = CRequest::param('product_unselect_info');
$category_id = $editFormData[$cate_id];
//var_dump($editFormData);
//echo $category_id;exit;
$addCateProductIdArr = explode(',', $product_select_info);
$deleteCateProductIdArr = explode(',', $product_unselect_info);
Yii::$service->product->addAndDeleteProductCategory($category_id, $addCateProductIdArr, $deleteCateProductIdArr);
$parent_id = (Yii::$app->request->post('parent_id'));
if (!isset($editFormData[$cate_id]) || !$editFormData[$cate_id]) {
$editFormData['parent_id'] = $parent_id;
}
$originUrlKey = 'catalog/category/index';
Yii::$service->category->save($editFormData, $originUrlKey);
$errors = Yii::$service->helper->errors->get();
if (!$errors) {
echo json_encode([
'statusCode'=>'200',
'message'=>'save success',
]);
exit;
} else {
echo json_encode([
'statusCode'=>'300',
'message'=>$errors,
]);
exit;
}
}
}
那么后期即使你更新文件到vender目录,你的更新也无法生效的。