prestashop 1.6。按类别ID获取所有制造商

时间:2018-01-30 13:41:28

标签: php mysql prestashop prestashop-1.6

我需要帮助构建适当的SQL查询,以获取与类别ID相关的所有制造商。或者,可能是一个如何实现相同结果的正确功能。试图在官方论坛上问,仍然没有答案。 目前 - 尝试调整this解决方案,尽管它已为早期版本(1.3-1.4)构建。有不正确的制造商,直接按类别ID查询,而不是产品ID。我在使用以下内容时也是如此:

[program:{PROGRAM_NAME}]
command=/usr/bin/{PROGRAM_NAME} -arg1 -arg2
autostart=true  
autorestart=true  
stderr_logfile=/var/log/supervisor/{PROGRAM_NAME}.err.log  
stdout_logfile=/var/log/supervisor/{PROGRAM_NAME}.out.log  

supervisorctl reload 

希望有人可以帮助我。提前致谢

UPD: 通过深度测试发现一个错误 - 此查询的修改版本为制造商解析基础,但并非所有。例如,我有一个id为29的类别,其中包含id为152-164,541的子类别。但是对于id为29的类别或具有id数组的子类别,没有列出制造商。但是对于另一个类别,例如ID 123,它会解析制造商。 无法理解,如果查询有任何限制?

当前代码:

$cateMan = new Category((int)$category, $id_lang, $id_shop);
            foreach ($cateMan as $c_id) {
                $manufacturer = new Manufacturer((int)$c_id, (int)$id_lang);
                if ($manufacturer->id)
                {
                    $link = new Link;
                    $html[] = '
   <li>
    <a data-id="'.$manufacturer->id.'" 
       class="itemMenuName level1 brands-link" 
          href="'.Tools::HtmlEntitiesUTF8($link->getManufacturerLink((int)$id, $manufacturer->link_rewrite)).'">
         <span>'.$manufacturer->name.'</span>
    </a>
  </li>';
                }
            }

1 个答案:

答案 0 :(得分:3)

您可能会进入产品以捕捉到这一点。我想这是一个更短且耗能更少的版本:

 ‘warnPartialMatchArgs’: logical.  If true, warns if partial
      matching is used in argument matching.

 ‘warnPartialMatchAttr’: logical.  If true, warns if partial
      matching is used in extracting attributes via ‘attr’.

 ‘warnPartialMatchDollar’: logical.  If true, warns if partial
      matching is used for extraction by ‘$’.

请注意,我没有测试SQL,但我很自信它会工作:)。