【问题标题】:Prestashop 1.7 How to Display data from database to tplPrestashop 1.7 如何将数据从数据库显示到 tpl
【发布时间】:2020-12-14 14:51:55
【问题描述】:

我是 Prestashop 的新手,我在 prestashop 1.7 上遇到了一点问题,我刚刚为我的订单购买了一个模块,当我启动 smarty 时,在详细信息页面上我可以看到包含一些信息的数组 $order_reference,但是当我转到我的历史记录页面我无法访问此信息,我不知道如何添加此信息以使用我的页面历史记录访​​问它,我是否必须在历史记录控制器或带有 dbclass 的类上创建一个函数或您还有其他解决方案来添加我的订单详细信息吗?

问题是我的信息在另一个调用 eo_orderreference 的表中,我无法使用我的订单对象访问它。我想我需要编写一个函数,但正如我在互联网上看到的那样,将它写在 tpl 文件上是错误的,我必须在我的课堂上做,但我不知道怎么做。 这是我要添加的信息

SELECT 'order_reference' FROM eo_orderreference 

抱歉,我无法上传图片,因为它包含敏感信息。

感谢您的宝贵时间。

【问题讨论】:

    标签: sql model-view-controller smarty prestashop-1.7


    【解决方案1】:

    Smarty 模板用于显示数据, 您应该在调用 TPL 的 PHP 文件中执行查询,然后使用 Prestashop

    assign()
    

    将数据作为可在前台显示的智能变量返回到 TPL 的方法。

    更多详情请见here

    【讨论】:

    • 谢谢@user325643 我知道prestashop是如何工作的,但现在我误解了我必须做什么,因为我知道我必须去historycontroller.php,添加一个带有我函数值的assign var谁得到了我的正确信息,我错了吗?
    【解决方案2】:

    您可以在模块或控制器中的函数内创建 sql 查询。

    例如:

    public function getAccessories($id_product)
    {
        // Your code
    }
    

    进入钩子或initcontent,你可以在查询sql上调用函数并为其分配一个模板:

    public function hookDiplayAccessoryExtraProduct($params)
    {
        $accessories = $this->getAccessories((int)$params['id_product']);
        $this->context->smarty->assign(array(
               'accessories_custom' => $accessories,
            )
        );
            return $this->display(__FILE__, 'views/templates/front/accessory.tpl');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      相关资源
      最近更新 更多