rodigy Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 Собственно если прописать метод __construct в своем контроллере унаследованном от Controller то получим ошибку: Fatal error: Call to a member function get() on a non-object in Z:\home\test\www\system\engine\controller.php on line 10 Задался этим вопросом, когда решить объединить подгрузку ( load->model() ) всех повторяющихся моделей в разных методах одного класса в конструктор. То ли я не так ООП понимаю, то ли причина кроется в другом? OpenCart 2.1.0.2 Надіслати Поділитися на інших сайтах More sharing options...
snastik Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 ControllerProductCategory extends Controller { А это вас не смущает ? Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 в своем контроллере унаследованном от Controller А вы каким образом создаёте экземпляр класса вашего контроллера? Сама ошибка говорит о том, что у вас реестр не передан в конструктор. Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 А вы каким образом создаёте экземпляр класса вашего контроллера? Сама ошибка говорит о том, что у вас реестр не передан в конструктор. Так же как и все остальные уже имеющиеся. Да я это понял, ток вот не могу понять как получить доступ к этому заветному реестру. parent::$registry тоже приводит к ошибке. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 __construct($registry) Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 (змінено) @chukcha, тоже самое будет, что и в первом посте Змінено 14 січня 2017 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 Покажите что вы делаете? ControllerProductCategory extends Controller { MyController extends ControllerProductCategory { Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 тоже самое будет, что и первом посте У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 classMyController extends Controller { public function __construct($registry) { parent::__construct($registry); 2 Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 parent::__construct($registry); Видимо, это как раз и причина проблемы (отсутствие и этого и явного присвоения реестра в поле класса). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); $obj = new myClass($this->registry); Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 (змінено) $obj = new myClass($this->registry); Зависит от места расположения этой строчки. Если: Так же как и все остальные уже имеющиеся. То в 2.1 это index.php, где просто $registry (оно и в следующих версиях просто $registry, но файл уже - framework.php). Хотя, это касается только контроллеров библиотеки. Я почему-то подумал именно про неё. Змінено 14 січня 2017 користувачем Dotrox Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 Всем спасибо , сам так решил проблему class ControllerTestTest extends Controller { protected $registry; function __construct ($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } оказалось что достаточно этого, а я уже в такие дебри залез, а всего то забыл в вызове родительского конструктора передать $registry function __construct ($registry) { parent::_construct($registry); } Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам __consruct в модуле или любом другом конроллере Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 в своем контроллере унаследованном от Controller А вы каким образом создаёте экземпляр класса вашего контроллера? Сама ошибка говорит о том, что у вас реестр не передан в конструктор. Надіслати Поділитися на інших сайтах More sharing options...
rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 А вы каким образом создаёте экземпляр класса вашего контроллера? Сама ошибка говорит о том, что у вас реестр не передан в конструктор. Так же как и все остальные уже имеющиеся. Да я это понял, ток вот не могу понять как получить доступ к этому заветному реестру. parent::$registry тоже приводит к ошибке. Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 __construct($registry) Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 (змінено) @chukcha, тоже самое будет, что и в первом посте Змінено 14 січня 2017 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 Покажите что вы делаете? ControllerProductCategory extends Controller { MyController extends ControllerProductCategory { Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 тоже самое будет, что и первом посте У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 classMyController extends Controller { public function __construct($registry) { parent::__construct($registry); 2 Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 parent::__construct($registry); Видимо, это как раз и причина проблемы (отсутствие и этого и явного присвоения реестра в поле класса). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); $obj = new myClass($this->registry); Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 (змінено) $obj = new myClass($this->registry); Зависит от места расположения этой строчки. Если: Так же как и все остальные уже имеющиеся. То в 2.1 это index.php, где просто $registry (оно и в следующих версиях просто $registry, но файл уже - framework.php). Хотя, это касается только контроллеров библиотеки. Я почему-то подумал именно про неё. Змінено 14 січня 2017 користувачем Dotrox Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 Всем спасибо , сам так решил проблему class ControllerTestTest extends Controller { protected $registry; function __construct ($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } оказалось что достаточно этого, а я уже в такие дебри залез, а всего то забыл в вызове родительского конструктора передать $registry function __construct ($registry) { parent::_construct($registry); } Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам __consruct в модуле или любом другом конроллере Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 (змінено) @chukcha, тоже самое будет, что и в первом посте Змінено 14 січня 2017 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 Покажите что вы делаете? ControllerProductCategory extends Controller { MyController extends ControllerProductCategory { Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 тоже самое будет, что и первом посте У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 classMyController extends Controller { public function __construct($registry) { parent::__construct($registry); 2 Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 parent::__construct($registry); Видимо, это как раз и причина проблемы (отсутствие и этого и явного присвоения реестра в поле класса). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); $obj = new myClass($this->registry); Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 (змінено) $obj = new myClass($this->registry); Зависит от места расположения этой строчки. Если: Так же как и все остальные уже имеющиеся. То в 2.1 это index.php, где просто $registry (оно и в следующих версиях просто $registry, но файл уже - framework.php). Хотя, это касается только контроллеров библиотеки. Я почему-то подумал именно про неё. Змінено 14 січня 2017 користувачем Dotrox Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 Всем спасибо , сам так решил проблему class ControllerTestTest extends Controller { protected $registry; function __construct ($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } оказалось что достаточно этого, а я уже в такие дебри залез, а всего то забыл в вызове родительского конструктора передать $registry function __construct ($registry) { parent::_construct($registry); } Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам __consruct в модуле или любом другом конроллере
Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 тоже самое будет, что и первом посте У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 classMyController extends Controller { public function __construct($registry) { parent::__construct($registry); 2 Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 parent::__construct($registry); Видимо, это как раз и причина проблемы (отсутствие и этого и явного присвоения реестра в поле класса). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); $obj = new myClass($this->registry); Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 (змінено) $obj = new myClass($this->registry); Зависит от места расположения этой строчки. Если: Так же как и все остальные уже имеющиеся. То в 2.1 это index.php, где просто $registry (оно и в следующих версиях просто $registry, но файл уже - framework.php). Хотя, это касается только контроллеров библиотеки. Я почему-то подумал именно про неё. Змінено 14 січня 2017 користувачем Dotrox Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 Всем спасибо , сам так решил проблему class ControllerTestTest extends Controller { protected $registry; function __construct ($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } оказалось что достаточно этого, а я уже в такие дебри залез, а всего то забыл в вызове родительского конструктора передать $registry function __construct ($registry) { parent::_construct($registry); } Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 parent::__construct($registry); Видимо, это как раз и причина проблемы (отсутствие и этого и явного присвоения реестра в поле класса). Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 У вас так должен выглядеть конструктор в вашем классе. А при создании экземпляра должно быть так: $obj = new myClass($registry); $obj = new myClass($this->registry); Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 (змінено) $obj = new myClass($this->registry); Зависит от места расположения этой строчки. Если: Так же как и все остальные уже имеющиеся. То в 2.1 это index.php, где просто $registry (оно и в следующих версиях просто $registry, но файл уже - framework.php). Хотя, это касается только контроллеров библиотеки. Я почему-то подумал именно про неё. Змінено 14 січня 2017 користувачем Dotrox Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 Всем спасибо , сам так решил проблему class ControllerTestTest extends Controller { protected $registry; function __construct ($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } оказалось что достаточно этого, а я уже в такие дебри залез, а всего то забыл в вызове родительского конструктора передать $registry function __construct ($registry) { parent::_construct($registry); } Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Dotrox Опубліковано: 14 січня 2017 Share Опубліковано: 14 січня 2017 (змінено) $obj = new myClass($this->registry); Зависит от места расположения этой строчки. Если: Так же как и все остальные уже имеющиеся. То в 2.1 это index.php, где просто $registry (оно и в следующих версиях просто $registry, но файл уже - framework.php). Хотя, это касается только контроллеров библиотеки. Я почему-то подумал именно про неё. Змінено 14 січня 2017 користувачем Dotrox Надіслати Поділитися на інших сайтах More sharing options...
rodigy Опубліковано: 14 січня 2017 Автор Share Опубліковано: 14 січня 2017 Всем спасибо , сам так решил проблему class ControllerTestTest extends Controller { protected $registry; function __construct ($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } оказалось что достаточно этого, а я уже в такие дебри залез, а всего то забыл в вызове родительского конструктора передать $registry function __construct ($registry) { parent::_construct($registry); } Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts