-1

モデルphpで「getProductbySku」という名前のカスタムメソッドを作成しました。

/admin/model/catalog/product.php

public function getProductbySku($sku) {
        $query = $this->db->query("select id from " . DB_PREFIX . "product where sku = '".$sku."'");
        if($query->num_rows){
            return $query->row['product_id'];
        }else{
            return false;
        }
    }

/admin/controller/module/syncproduct.php

$this->load->model("catalog/product");
print_r(get_class_methods($this->model_catalog_product));
$product_id = $this->model_catalog_product->getProductbySku($row['sku']);
                if($product_id){
...

そして、私は自分のメソッドを呼び出すことができません。

致命的なエラー: 204 行目の public_html/admin/controller/module/syncproduct.php の未定義メソッド ModelCatalogProduct::getProductbySku() の呼び出し

Array
(
    [0] => addProduct
    [1] => editProduct
    [2] => copyProduct
    [3] => deleteProduct
    [4] => getProduct
    [5] => getProducts
    [6] => getProductsByCategoryId
    [7] => getProductDescriptions
    [8] => getProductCategories
    [9] => getProductFilters
    [10] => getProductAttributes
    [11] => getProductOptions
    [12] => getProductOptionValue
    [13] => getProductImages
    [14] => getProductDiscounts
    [15] => getProductSpecials
    [16] => getProductRewards
    [17] => getProductDownloads
    [18] => getProductStores
    [19] => getProductLayouts
    [20] => getProductRelated
    [21] => getRecurrings
    [22] => getTotalProducts
    [23] => getTotalProductsByTaxClassId
    [24] => getTotalProductsByStockStatusId
    [25] => getTotalProductsByWeightClassId
    [26] => getTotalProductsByLengthClassId
    [27] => getTotalProductsByDownloadId
    [28] => getTotalProductsByManufacturerId
    [29] => getTotalProductsByAttributeId
    [30] => getTotalProductsByOptionId
    [31] => getTotalProductsByProfileId
    [32] => getTotalProductsByLayoutId
    [33] => __construct
    [34] => __get
    [35] => __set
)

だから、私は "echo $file" を /system/engine/loader.php に追加しました

public function model($model, $data = array()) {
    // $this->event->trigger('pre.model.' . str_replace('/', '.', (string)$model), $data);
    $model = str_replace('../', '', (string)$model);
    $file = DIR_APPLICATION . 'model/' . $model . '.php';
    echo $file;
...

何も変わっていません... Opencart のバージョンは 2.1.0.1 です

4

1 に答える 1

0

このファイルは上書きカタログ/製品モデルsystem/modification/admin/model/catalog/product.php です

于 2016-05-20T16:56:03.933 に答える