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

Получение $this->config->get в модели


captainsm
 Поделиться

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

Доброго времени суток!

Пытаюсь создать маленькое дополнение

Вызываю функцию модели из отдельного файла в корне сайта:

require_once("/public_html/admin/config.php");
require_once(DIR_SYSTEM . 'startup.php');
// Registry
$registry = new Registry();
// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);
// Loader
$load = new Loader($registry);
$load->model('module/bart');
$brload = $registry->get('model_module_bart');
$brload->test();

 

В модели такой код:

class ModelModuleBart extends Model {
	public function test() {
		$this->db->query("UPDATE " . DB_PREFIX . "test SET bart = '" . $this->config->get('config_bart_test') . "'");	
}
}

При этом $this->config->get('config_bart_test') пустой

Когда пытаюсь добавить $this->load->model('setting/setting');, выдает ошибку: 

Fatal error: Call to a member function model() on null in /public_html/admin/model/module/bart.php on line 4

 

В oc_setting code и key указаны как config_bart_test, записываю так:

$this->model_setting_setting->editSetting('config_bart_test', $this->request->post);

 

Подскажите, что делаю не так? Можно ли вообще это использовать в модели? Пробовал создавать controller, где описывал

		if (isset($this->request->post['config_bart_test'])) {
			$data['config_bart_test'] = $this->request->post['config_bart_test'];
		} elseif ($this->config->get('config_bart_test')) { 
			$data['config_bart_test'] = $this->config->get('config_bart_test');
		}

Но никаких результатов это не принесло

 

Прошу прощения, если с кодом что-то совсем не так, собирал из разных источников, опыта и необходимых знаний не хватает совсем(

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


28 минут назад, captainsm сказал:

Вызываю функцию модели из отдельного файла в корне сайта:

А зачем Вы это делаете?

Не проще ли создать файл в папке catalog/controller/Bart/Bart.php

 

И вызывать уже по ссылке

?index.php?route=Bart/Bart

?

 

 

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

  • 3 года спустя...

Итак, во 1-х модуль 

ModelModuleBart должен лежать в папке model/module/bart.php

во 2-х

 

При создании вашего модуля, не забыли ли вы случаем в конструкторе класса прокинуть $registry в родителя?

 

Цитата
global $registry;
parent::__construct($registry);

 

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


Это скорей не дополнение, а какой-то скрипт для внешнего использования

$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);


Сделайте тоже самое для config, но конфиг еще нужно проинициализировать.

Что ваше дополнение должно делать?
 

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

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

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

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

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

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

Войти

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

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

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

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

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