Функция пользовательского контроллера Opencart не найдена
Когда я пытаюсь отправить POST-запрос с помощью jQuery я взять - 404 не найдено
Там мой пользовательский контроллер:
<?php
class ControllerCardsCards extends Controller {
public function index() {
$this->document->setTitle($this->config->get('config_meta_title'));
$this->document->setDescription($this->config->get('config_meta_description'));
$this->document->setKeywords($this->config->get('config_meta_keyword'));
if (isset($this->request->get['route'])) {
$this->document->addLink($this->config->get('config_url'), 'canonical');
}
$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');
$this->response->setOutput($this->load->view('cards/registraion', $data));
$this->load->model('cards/cards');
$this->log->write('Controller main');
}
public function addcardquery($data){
$this->log->write('fired addCardQuery function');
$this->load->Model('cards/cards');
$this->load->language('cards/cards');
$temp = $this->model_cards_cards->insertCard($data);
}
И моя функция jquery:
$(document).ready(function(){
$("#regCardSubmit").click(function(event) {
event.preventDefault();
var myObject = new Object();
myObject.lastname = $('#card_reg_lastname').val();
myObject.firstname = $('#card_reg_firstname').val();
myObject.middlename = $('#card_reg_middlename').val();
myObject.cardnum = $('#card_reg_card_num').val();
myObject.birthday = $('#card_reg_birthday').val();
myObject.phone = $('#card_reg_phone_num').val();
myObject.email = $('#card_reg_email').val();
var data = {"action": "addcardquery"};
data = $(this).serialize() + "&" + $.param(data);
var outjson = JSON.stringify(myObject);
//alert(outjson);
$.ajax({
type: "post",
dataType: "json",
url: "index.php?route=cards/cards/addcardquery",
data: outjson,
success: function(data) { alert(outjson); },
error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
});
return false;
});
});
функция addcardquery всегда doest не срабатывала, я пытался вызвать из браузера индекс пути.php?маршрут=карты / карты / addcardquery, но я был получить все равно.


Ответы - Функция пользовательского контроллера Opencart не найдена / Opencart custom controller function not found

07.03.2019 04:05:33
Проверьте свои модификации OCMOD. кажется, у вас все правильно, но это просто не рассматривается рамками.
перейдите в system/storage/modification/catalog/controller/cards/cards.php
и проверить, если он есть (ваша папка хранения может быть перемещена выше, так что проверьте, что тоже)

14.03.2019 03:33:22
Я замечаю пару вещей, которые вы сделали неправильно, но не ожидал бы, чтобы вызвать эту проблему.
$data
не должно быть в параметре функции-OpenCart так не работает$this->load->Model
должна быть$this->load->Model
(заметьте с маленькой буквыm
)
VQMod/OCMod вряд ли будут виновником здесь, как кто-то предположил, так как они должны были бы активно редактировать ваш файл с помощью своей системы. Единственное возможное объяснение, которое я могу придумать, это то, что у вас есть что-то вроде opcache, включенного в php, и это нужно отключить, пока вы разрабатываете свой код

22.03.2019 07:49:55
Первую осень вы можете заменить
$this->load->Model('cards/cards');
К
$this->load->model('cards/cards');
вторые изменения здесь
$temp = $this->model_cards_cards->insertCard($data);
после добавления ниже кода
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
я тик-это прекрасно работает.