配置::get() 在 PrestaShop 1.6 的控制器中返回空值



我正在使用PrestaShop 1.6.1.0

我的模块中有一个支持不同语言的字段,postProcess()如下所示:

protected function postProcess()
{
  $languages = Language::getLanguages(false);
  $values = array();
  foreach ($languages as $lang)
  {
    $values['CUSTOMPAGECONFIGURATION_HEADING_TEXT'][$lang['id_lang']] = Tools::getValue('CUSTOMPAGECONFIGURATION_HEADING_TEXT_'.$lang['id_lang']);
  }
  Configuration::updateValue('CUSTOMPAGECONFIGURATION_HEADING_TEXT', $values['CUSTOMPAGECONFIGURATION_HEADING_TEXT'], true);
  return $this->displayConfirmation($this->l('The settings have been updated.'));
}

问题:

当我尝试在自定义控制器(路径:/controllers/front/CustomPageController.php(中获取此配置变量值时,如下所示,它没有获取任何结果:

$headtxt = Configuration::get('CUSTOMPAGECONFIGURATION_HEADING_TEXT');
print_r($headtxt);
exit;

它没有打印任何东西。我想在控制器中获取此值,但它不起作用并返回一个空字符串。

网站正在使用PrestaShop 1.6.1.0,我尝试了许多可用的代码。我错过了什么吗?

我在为自定义页面创建的新控制器中使用此代码:

$headtxt = Configuration::get('CUSTOMPAGECONFIGURATION_HEADING_TEXT');
print_r($headtxt);
exit;

我希望输出由postProcess()方法保存的配置变量的结果。

嗨@Ankur,欢迎来到 SO!

postProcess()方法中,将此配置值另存为多语言值。

但是,在调用Configuration::get()静态方法时,在我看来您忘记提及语言 ID,这是函数原型:

public static function get($key, $idLang = null, $idShopGroup = null, $idShop = null, $default = false)

这应该有效:

$id_lang = (int)$this->context->cookie->id_lang
$headtxt = Configuration::get('CUSTOMPAGECONFIGURATION_HEADING_TEXT', $id_lang);
print_r($headtxt);
exit;

最新更新