2015-08-07 2 views
0

Я создал пользовательский контроллер в "admin/controller/mycustomcontroller/mycustomcontroller.php" для обработки некоторых AJAX-запросы, среди прочего, для моих внутренних модулей. Этот настраиваемый контроллер содержит метод add(), который я намерен использовать.Невозможно загрузить пользовательский контроллер в Opencart 2

Ситуация:

  • Я дал разрешение на чтение/запись к группе пользователей Администратор.
  • Вызов метода add моего пользовательского контроллера через AJAX отлично работает.
  • То же, что доступ к нему напрямую через URL route=mycustomcontroller/mycustomcontroller.php/add

Проблема:

  • я не могу загрузить контроллер с помощью:

    $this->load->controller('mycustomcontroller/mycustomcontroller/add'); 
    

    Я пытался загрузить его в admin/controller/catalog/product.php файл и внутри моего файла модели, но он ничего не возвращает (нет результата, ошибки, ничего).

Я новичок в OpenCart, и я не знаю, в чем проблема, в самом худшем случае я просто завивать файл контроллера, но это не так.

ответ

0

После многих тестов я, наконец, нашел проблему, и это довольно глупо.

Допустим, вы хотите, чтобы ваш контроллер возвращать кодированный json строку, так что вы можете использовать его в JavaScript, вы могли бы написать (по привычке):

$this->response->setOutput(json_encode($result)); 

большую ошибку! Настройка выхода через эту функцию не будет учитываться при вызове метода load->controller(), поэтому даже если ваш AJAX/JS будет работать нормально, ничего больше не будет. вместо этого использовать:

return json_encode($result) 

Тот факт, что никто не наткнулся на этот вопрос, прежде чем меня удивительна, я либо глуп или не хватает чего-то важного в OC документации.

Смежные вопросы