Как получить id_category в Category.php, если обращаешся к static методу класса?

Автор atrisan, 31 июля 2019, 18:17:21

« назад - далее »

atrisan

Добрый день!
Создал override Category.php в папке /override/classes/Category.php , переопределение методов работает.
Обращаюсь в кастомному методу в /override/classes/Category.php , в методе обращаюсь к свойству класса $this->id_category и $this->id .
Но эти свойства не определены, так как при обращении к статическому методу не создается экземпляр класса и не запускается метод __construct() .

Как получить id_category в Category.php, если обращаешься к static методу класса?

atrisan


PrestaMan

Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

mAgency

Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

atrisan

#4
Цитата: atrisan от 31 июля 2019, 23:06:21
Цитата: PrestaMan от 31 июля 2019, 19:48:33
Код метода?
Извиняюсь что сразу не выложил:

/** override Category model */
class Category extends CategoryCore
{
    public static function hasMultiParentsForCategory($id_parent)
    {
        return ($this->id_category == $id_parent) ? true : false;
    } 
  ...
}


Вызов метода  в override HelperTreeCategories:


$item['multi_parent'] = Category::hasMultiParentsForCategory($item['id_parent']);


Получаю ошибку:
Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalThrowableError: "Using $this when not in object context" at D:\OSPanel\domains\nkabel\override\classes\Category.php line 178

Строка 178 : return ($this->id_category == $id_parent) ? true : false;

atrisan

Пытался переписать чтобы не было статического метода:


$self_category = new Category();
$item['multi_parent'] = $self_category->hasMultiParentsForCategory($item['id_parent']);


Так ошибок нет, НО при этом присваивается НЕ текущая категория страницы, а другая категория.

Как получить id_category текущей категории страницы

atrisan

В общем может кто знает как в классе HelperTreeCategories , определить id категории страницы?

DarinSr

Цитата: atrisan от 01 августа 2019, 10:25:30
В общем может кто знает как в классе HelperTreeCategories , определить id категории страницы?
Класс HelperTreeCategories используют для построения дерева категорий. При выводе дерева категорий можете сравнить id текущей категории.
Id категории на странице категории
{$category.id_category}

mAgency

Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

atrisan

Всем спасибо за помощь.

в общем вынес логику метода к контроллер, а в модели оставил метод с sql запросом.
В контроллере намного проще получить id_category  оказывается.