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
}
}
< /code>
Работает вышеуказанный код. Я могу получить доступ к языковому свойству в контекстном компоненте. Тем не менее, это не должно потребоваться в соответствии с документацией, а также, что этот код идентифицируется как ошибка Valdator модуля Prestashop, поскольку «функции и методы Prestashop не используются должным образом». и Errorexception "попытка прочитать свойство" язык "на NULL". поднимается. (Я также проверяю с dd () У кого -нибудь есть, что я делаю не так?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ller-class
Мобильная версия