Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как можно подгрузить модель в library/cart/cart.php


kagan

Recommended Posts

Приветствую.

 

Подскажите пожалуйста как можно подключить свою модель в OpenCart 2.2 в библиотеке system/library/cart.cart.php

 

Пробовал так:

require_once(dirname(DIR_APPLICATION) . '/catalog/model/catalog/category.php');

$catalog_category_model = new ModelCatalogCategory($this->registry);
$result = $catalog_category_model->getCategory(5);

echo $result;

Результат:

Fatal error: Class 'Cart\ModelCatalogCategory' not found in /home/hoursco/dev/new/system/library/cart/cart.php on line 44

Другие варианты тоже пробовал, не помогло. Сейчас нуждаюсь в подсказке..

Надіслати
Поділитися на інших сайтах

..

Fatal error: Class 'Cart\ModelCatalogCategory' not found in /home/hoursco/dev/new/system/library/cart/cart.php on line 41

Видимо из-за namespace'а, который указан в верху.

namespace Cart;
Надіслати
Поділитися на інших сайтах

Решено. Рабочий вариант:

global $loader;

$loader->model('catalog/product');
$model = $registry->get('model_catalog_product');

echo "<pre>";
echo var_dump($model->getProduct(47));
echo "</pre>";
Змінено користувачем kagan
Надіслати
Поділитися на інших сайтах

Только после таких манипуляций на стороне сайта, в админке выбрасывает исключение, что модель не может быть загружена. (применил к своему модулю)

 

3BcarLY.png

Надіслати
Поділитися на інших сайтах

Частичное, но не полное решение, т.к. исключение вылетало из-за того, что не могло подгрузить модель которая не существует.

if (!defined('HTTP_CATALOG')) {
    global $loader;

    $loader->model('module/timer');
    $this->model_module_timer = $registry->get('model_module_timer');
}

Прописав else, т.е. когда мы находимся в админке и обращаемся к system/library/cart/cart.php с другим путем к модели, все равно выкидывает исключение хотя пути прописаны правильно.

Змінено користувачем kagan
Надіслати
Поділитися на інших сайтах

Если честно не особо понимаю зачем вызывать в library model

Вызывайте там контроллер (в папке controller который), который будет вызывать модель

И... system/library/cart/cart.php у вас выступает каким классом? extends Controller ?

Т е суть такая - вызывайте модель из extends Controller. Это будет более правильно с точки зрения архитектуры

P.S. Это то что я хотел написать выше в "двух точках", но отвлекли и времени не было

Надіслати
Поділитися на інших сайтах

markimax, Необходимо для проверки через метод, который там находится. Он используется не в 1 контроллере, поэтому я его вынес в модель.

 

/system/library/cart/cart.php

класс Cart в данном случае не наследуется, это OC 2.2.0.0

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.