J'ai créé une méthode personnalisée nommée "getProductbySku" dans un modèle php.Opencart ne trouve pas de méthode personnalisée dans le modèle
/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){
...
et je ne peux pas appeler ma méthode .
Erreur fatale: Appel à la méthode non définie ModelCatalogProduct :: getProductbySku() dans public_html/admin/contrôleur/module/syncproduct.php en ligne 204
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
)
, j'ajouté "echo $ file" pour/système/moteur/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;
...
Rien n'a changé ... la version Opencart est 2.1.0.1
Avez-vous essayé d'exécuter composer dump-autoload? –
Veuillez vérifier que la fonction 'getProductbySku' est écrite dans la classe. –
bien sûr 'getProductbySku' dans la classe ModelCatalogProduct – levye