如何访问属于 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.tpl
和my-account.tpl
的内容合并到一个页面上,但我没有解决问题的方法。)
我应该更换控制器,还是可以通过 my-account.tpl
的 smarty 以某种方式通过 IdentityController
访问客户 table 数据? (如果是,如何?)
任何建议都可能有所帮助并表示赞赏!
非常感谢!
数据不属于控制器。
一般规则是表示概念实体(客户、订单、购物车等)的数据库表是通过它们的同名 类(模型)获取和修改的。只要你可以在任何给定的控制器中构造一个 Customer
对象,你就可以从数据库中访问该对象的相应数据。
控制器只包含执行某个动作或一组动作的逻辑。为了实现这一点,它通常与模型中的一个或多个对象交互,因为控制器本身不存储自己的数据。
在这种特殊情况下,如果您有权访问客户的 ID,则可以将其传递给 Customer
构造函数并继续使用其属性和方法。
或者,控制器可能已经设置了 $this->context->customer
属性,其中包含您可以使用的已经构建的 Customer
对象。
一旦您可以访问该数据,您只需将值分配给您选择的 smarty 变量(通过 $this->context->smarty->assign()
),您就可以在模板中使用它们了。
我需要从我的 my-account.tpl
文件中的客户数据库 table 获取属于 IdentityController
的数据。 (老实说,我应该把identity.tpl
和my-account.tpl
的内容合并到一个页面上,但我没有解决问题的方法。)
我应该更换控制器,还是可以通过 my-account.tpl
的 smarty 以某种方式通过 IdentityController
访问客户 table 数据? (如果是,如何?)
任何建议都可能有所帮助并表示赞赏!
非常感谢!
数据不属于控制器。
一般规则是表示概念实体(客户、订单、购物车等)的数据库表是通过它们的同名 类(模型)获取和修改的。只要你可以在任何给定的控制器中构造一个 Customer
对象,你就可以从数据库中访问该对象的相应数据。
控制器只包含执行某个动作或一组动作的逻辑。为了实现这一点,它通常与模型中的一个或多个对象交互,因为控制器本身不存储自己的数据。
在这种特殊情况下,如果您有权访问客户的 ID,则可以将其传递给 Customer
构造函数并继续使用其属性和方法。
或者,控制器可能已经设置了 $this->context->customer
属性,其中包含您可以使用的已经构建的 Customer
对象。
一旦您可以访问该数据,您只需将值分配给您选择的 smarty 变量(通过 $this->context->smarty->assign()
),您就可以在模板中使用它们了。