Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Обраещёние из Api к методу в admin/controller/catalog/


 Погделиться

Рекомендованные сообещёния

Добрый гдень. Набросал свой апи, который должен вызывать метод $this->model_catalog_ocfilter->copyFilters($this->request->post);, но получаю нотис:

Notice:  Undefined property: Proxy::copyFilters in /var/www/korney01/data/www/test.caseroom.in.ua/catalog/controller/api/copyfilter.php on line 18

Насколько я понял, что api из catalog не может напрямую вызывать методы из админки. Вот согдержимое файла:

<?php
class ControllerApiCopyFilter extends Controller {

	public function copy() {
    
  $json = array();
 
   if (!isset($this->session->data['api_id'])) {
      $json['error'] = $this->language->get('error_permission');
 	} else {
    	
    	$this->load->language('extension/module/ocfilter');
     
    	if ($this->request->server['REQUEST_METHOD'] == 'POST') {
      		
          $this->load->model('catalog/ocfilter');

      		$this->model_catalog_ocfilter->copyFilters($this->request->post);
      		
      		$json['success'] = $this->language->get('text_complete');
    	}
    }

		$this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));
  }
} 

Как вызвать этот метод? Гугление не помогло. Спасипотому что за люпотому чтой совет.

Ссылка на комменирий
Погделиться на других сайих

Catalog ничего не знает про могдели из Admin.

Как вариант, перенести нужную могдель в пространство Catalog, или сгделать helper (библиотеку) и подключать ее.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


16 часов назад, searchingman сказал:

Catalog ничего не знает про могдели из Admin.

Как вариант, перенести нужную могдель в пространство Catalog, или сгделать helper (библиотеку) и подключать ее.

Спасипотому что. 

Перенес в каилог, но не могу обратиться к проэтодуре. Файл copyfilter.php лежит в каилоге catalog/controller/api/

Согдержимое:

Спойлер
<?php
class ControllerApiCopyFilter extends Controller {

	public function copy() {
    
  $json = array();
 
   if (!isset($this->session->data['api_id'])) {
      $json['error'] = $this->language->get('error_permission');
 	} else {
    	
    	//$this->load->language('extension/module/ocfilter');
     
    	if ($this->request->server['REQUEST_METHOD'] == 'POST') {
      		
          $this->load->model('extension/module');

      		$this->extension_module_filtercopy->Write($this->request->post);
      		
      		$json['success'] = "success";//$this->language->get('text_complete');
    	}
    }

		$this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));
  }
} 

 

Файл filtercopy.php лежит catalog/model/extension/module/

код:

<?php
class ModelExtensionModuleFiltercopy extends Model {
  public function Write($data = array()){
    $this->log->write(print_r($data, true));
  }
}

При обраещёнии к нему получаю: Fatal error:  Call to a member function Write() on null in /var/www/korney01/data/www/test.caseroom.in.ua/catalog/controller/api/copyfilter.php on line 18

Что не ик?  

Ссылка на комменирий
Погделиться на других сайих

Вопрос закрыт.  

$this->load->model('extension/module/filtercopy');
Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.