在模板内创建新类别实例-prestashop 1.7
我知道我可以在在模板内创建新类别实例-prestashop 1.7,prestashop,prestashop-1.7,Prestashop,Prestashop 1.7,我知道我可以在.tpl模板文件中使用category类方法,如下所示: {assign var='all_categories' value=Category::getCategories()} 但如何在模板内初始化类别对象呢?使\u构造函数运行 我之所以问这个问题,是因为当我尝试使用某些Category类函数时,会出现以下错误: Using $this when not in object context 没有办法通过tpl文件来实例一个类别,有些类别有一个公共静态方法来实现这一点,例如,
.tpl
模板文件中使用category类方法,如下所示:
{assign var='all_categories' value=Category::getCategories()}
但如何在模板内初始化类别对象呢?使\u构造
函数运行
我之所以问这个问题,是因为当我尝试使用某些Category类函数时,会出现以下错误:
Using $this when not in object context
没有办法通过tpl文件来实例一个类别,有些类别有一个公共静态方法来实现这一点,例如,像
Db
类,这有一个名为getInstance
,不幸的是默认情况下类别中不存在任何类似的方法。您应该在php文件中对其进行实例,并发送给Smarty,或者通过添加对象来修改类:
publicstatic$instance=array()代码>
方法是:
public static function getInstance($id_category)
{
if (isset(self::$instance[$id_category])) {
return self::$instance[$id_category];
}
return self::$instance[$id_category] = new Category($id_category);
}
现在,您可以在第三方物流中使用:
{assign var='category'value=category::getInstance(3)}