Php 变量($product.id_product)未传递给函数:((Prestahop)
是在product-list.php中调用的函数Php 变量($product.id_product)未传递给函数:((Prestahop),php,function,smarty,prestashop,Php,Function,Smarty,Prestashop,是在product-list.php中调用的函数 {mycat id_product_my=$product.id_product} 在此表单中,在上面写一行,变量$product.id\U product不会传递给函数: {$product.id_product} 将正确的结果作为id返回 {mycat id_product_my=15} 以id15的产品类别返回正确的结果 怎么了 -------------------------------------------- php函数: f
{mycat id_product_my=$product.id_product}
在此表单中,在上面写一行,变量$product.id\U product不会传递给函数:
{$product.id_product}
将正确的结果作为id返回
{mycat id_product_my=15}
以id15的产品类别返回正确的结果
怎么了
--------------------------------------------
php函数:
function smarty_compiler_mycat($params, &$smarty) {
$id_product_my = $params[‘id_product_my’];
$ret = “”;
if ($row = Db::getInstance(PS_USE_SQL_SLAVE)->ExecuteS(’
SELECT cl.`name` FROM `’.DB_PREFIX.‘category_lang` cl
LEFT JOIN `’.DB_PREFIX.‘category_product` cp ON cl.`id_category` = cp.`id_category`
WHERE cp.`id_product` = ‘.(int)$id_product_my) )
foreach ($row as $val) {
$ret .= $val[‘name’].” “;
}
return $ret;
}
我不知道我是否理解纠正你的问题 如果你想调用tpl文件中的函数,你必须这样调用:
{parameter1|functionName:parameter2:parameter3}
为什么它是一个编译器函数?只需将其设置为常规运行时函数。将函数名更改为smarty_function_mycat,保留相同的参数,将文件名更改为function.mycat.php
作为测试/调试事项,您可以在函数中使用var_dump$params来查看通过的$product.id_产品中的实际内容。谢谢大家!有必要在smarty_函数上替换smarty_编译器_mycat。