如何访问属于 prestashop 1.6 中另一个 controller/model 的 .tpl 文件中的数据库数据?

How can I access DB data in a .tpl file which belongs to another controller/model in prestashop 1.6?

我需要从我的 my-account.tpl 文件中的客户数据库 table 获取属于 IdentityController 的数据。 (老实说,我应该把identity.tplmy-account.tpl的内容合并到一个页面上,但我没有解决问题的方法。)

我应该更换控制器,还是可以通过 my-account.tpl 的 smarty 以某种方式通过 IdentityController 访问客户 table 数据? (如果是,如何?)

任何建议都可能有所帮助并表示赞赏!

非常感谢!

数据不属于控制器。

一般规则是表示概念实体(客户、订单、购物车等)的数据库表是通过它们的同名 类(模型)获取和修改的。只要你可以在任何给定的控制器中构造一个 Customer 对象,你就可以从数据库中访问该对象的相应数据。

控制器只包含执行某个动作或一组动作的逻辑。为了实现这一点,它通常与模型中的一个或多个对象交互,因为控制器本身不存储自己的数据。

在这种特殊情况下,如果您有权访问客户的 ID,则可以将其传递给 Customer 构造函数并继续使用其属性和方法。

或者,控制器可能已经设置了 $this->context->customer 属性,其中包含您可以使用的已经构建的 Customer 对象。

一旦您可以访问该数据,您只需将值分配给您选择的 smarty 变量(通过 $this->context->smarty->assign()),您就可以在模板中使用它们了。