Prestashop - 从 smarty tpl 调用静态方法
Prestashop - Call static method from smarty tpl
我正在使用 prestashop 1.7,我在覆盖 / classes 中有一个名为 Cart.php 的文件,它具有与此类似的功能,其目的是 return 一个对象数组,代码可以是这样的
<?php
class 购物车扩展了 CartCore
{
public static function getADXFromProducts($id){
$adxProducts=array();
return $adxProducts;
}
}
我在 smarty 模板 "Tpl" 中遇到问题,我尝试以这种方式调用静态方法。
通过屏幕我没有收到任何错误,但是如果我在上面的覆盖文件中激活 xdebug,我没有看到它进入方法。
{assign var=bookProducts value={Cart::getADXFromProducts($cart.id)}}
谢谢
首先,在管理面板中的 Prestashop 中激活调试模式
高级参数 -> 性能 -> 调试模式。如果你有它,它会帮助你看到任何问题
其次,确保将覆盖文件放在正确的路径中,它必须是 'override/classes/Cart.php'
第三次,删除一个文件app/cache/dev/class_index.php会自动生成,所有路由都会重新生成
最后,如果你想得到一个数组作为响应,你需要这样定义你的变量
{assign var='bookProducts' value=Cart::getADXFromProducts($cart.id)}
您的方式 {assign var=bookProducts value={Cart::getADXFromProducts($cart.id)}}
仅适用于字符串或数字
静态函数可以直接在Smarty文件中调用例如:
{Cart::getADXFromProducts($cart.id)}
但不建议这样做,你应该调用PHP class文件中的函数,然后使用Smarty中的值。
$this->context->smarty->assign('bookProducts', Cart::getADXFromProducts($cart.id));
我正在使用 prestashop 1.7,我在覆盖 / classes 中有一个名为 Cart.php 的文件,它具有与此类似的功能,其目的是 return 一个对象数组,代码可以是这样的
<?php
class 购物车扩展了 CartCore {
public static function getADXFromProducts($id){
$adxProducts=array();
return $adxProducts;
}
}
我在 smarty 模板 "Tpl" 中遇到问题,我尝试以这种方式调用静态方法。
通过屏幕我没有收到任何错误,但是如果我在上面的覆盖文件中激活 xdebug,我没有看到它进入方法。
{assign var=bookProducts value={Cart::getADXFromProducts($cart.id)}}
谢谢
首先,在管理面板中的 Prestashop 中激活调试模式 高级参数 -> 性能 -> 调试模式。如果你有它,它会帮助你看到任何问题
其次,确保将覆盖文件放在正确的路径中,它必须是 'override/classes/Cart.php'
第三次,删除一个文件app/cache/dev/class_index.php会自动生成,所有路由都会重新生成
最后,如果你想得到一个数组作为响应,你需要这样定义你的变量
{assign var='bookProducts' value=Cart::getADXFromProducts($cart.id)}
您的方式 {assign var=bookProducts value={Cart::getADXFromProducts($cart.id)}}
仅适用于字符串或数字
静态函数可以直接在Smarty文件中调用例如:
{Cart::getADXFromProducts($cart.id)}
但不建议这样做,你应该调用PHP class文件中的函数,然后使用Smarty中的值。
$this->context->smarty->assign('bookProducts', Cart::getADXFromProducts($cart.id));