变量($ product.id_product)不会传递给函数:((Prestahop)

| 是在product-list.php中调用的函数。
{mycat id_product_my=$product.id_product}
在这种形式下,在上面写一行,ѭ1不传递给函数:
{$product.id_product}
返回正确的结果作为ID。
{mycat id_product_my=15}
返回正确的结果作为id(15)的产品类别。 怎么了? —————————————————————————————————————————————— 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
。 作为测试/调试的问题,您可以在函数中按ѭ8来查看所传递的ѭ9中的内容。     

要回复问题请先登录注册