Как получить доступ к контекстному компоненту в классе контроллера Prestashop?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как получить доступ к контекстному компоненту в классе контроллера Prestashop?

Сообщение Anonymous »

Я сталкивался с этой проблемой каждый раз, когда писал модуль для Prestashop.
I Im On Versions> 8.1 (8.2.1 во время вопроса), и эта проблема может или не может применить к версии 9 и новым, для которого контекстный компонент был «рефакторирован» (согласно документации). $ this-> context .
, в то время как это, кажется, работает для классов, расширяющих класс модуля, когда используется в подклассе контроллера (например, класс, расширяющий ModuleAdminController).

Код: Выделить всё

// Some use statements

class MyController extends ModuleAdminController
{

public function __construct()
{
$this->bootstrap = true;
$this->list_no_link = true;
$this->context = Context::getContext();
$this->lang = false;
$this->allow_export = true;

// Some code

$statuses = OrderState::getOrderStates((int)$this->context->language->id);
foreach ($statuses as $status) {
$this->statuses_array[$status['id_order_state']] = $status['name'];
}

// Other code
}
}
Приведенный выше код работает, но если я прокомментирую строку $ this-> context = context :: getContext (); , контекст-null и ошибка errorexception «попытка прочитать свойство« язык »на NULL». поднимается. (Я также проверяю с dd () ).
У кого -нибудь есть, что я делаю не так?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ller-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»