如何从Prestashop模块数据库中获取值

时间:2016-07-12 12:57:50

标签: php smarty prestashop

我有一个非常简单的Prestashop模块,我想重新使用自己的数据库表和单独的语言等。

以前这个模块是在没有多语言功能的情况下编写的 ps_configuration表使用。

 public function hookDisplayFooter($params)
     {
         $value = Configuration::get('MYMODULE_SETTINGS');

现在我有了

 public function hookDisplayFooter($params)
     {
         $value = Tools::getValue('mymodule_settings');

一切正常但我无法再在此函数中获取mymodle_settings值。这是我的输入数组。

array(
    'type' => 'text',
    'label' => $this->l('Settings'),
    'desc' => $this->l('My module settings.'),
    'name' => 'mymodule_settings',
    'lang' => true,
    'size' => 64,
),

这是我的数据库表

 `mymodule_settings` varchar(255) NOT NULL,

mymodule_settings值正确放置在数据库中,我在模块BO中看到它们,问题是如何使它们运行 $ value =

1 个答案:

答案 0 :(得分:2)

tools :: getValue返回存储在$ _POST / $ _GET变量中的值,因此它不会返回数据库条目。

所以在这种情况下我们需要使用 Db :: getInstance(_PS_USE_SQL_SLAVE _) - > getRow(''); 功能

就我而言,这可以完成工作

public function hookDisplayFooter($params)
    {
        $sql = 'SELECT mymodule_settings FROM '._DB_PREFIX_.'mymodule';
        $value = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql);