1

需要你的帮助!如何使用产品 ID 获取图像的路径?

Link::getImageLink()——$name的第一个参数,不知?

$searchResults = Search::find((int)(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);
foreach ($searchResults as &$product)
{
    $product['product_link'] = $this->context->link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite']);
    $imageid = Product::getCover($product['id_product']);
    // there i have image ID, how get image path $imagepath?
    $product['image'] = $imagepath;
}
die(Tools::jsonEncode($searchResults));
4

3 回答 3

3

看看Link::getImageLink()。这是您必须使用的方法来获取产品图像的 url。

$imagePath = Link::getImageLink($product['link_rewrite'], $product['id_product'], 'home_default'); // change the last parameters to get the size you need

如果您需要使用相同的语法,此方法也可以在模板中使用

{$link->getImageLink($product.link_rewrite, $product.id_product, 'home_default')}`

编辑 我重新阅读了您的问题并意识到您知道这一点。所以是的,第一个参数是 link_rewrite. 希望这可以帮助

于 2013-05-15T12:24:27.600 回答
0

要正确获取产品图像,请遵循以下代码并正确传递参数(如果您遵循此代码,则启用 URL 重写时不会出现问题)。

{$link->getImageLink($name, $ids, $type = NULL) }

参数的细节就像

@param string $name rewrite link of the image
@param string $ids id part of the image filename - can be "id_product-id_image" (legacy support, recommended) or "id_image" (new)
@param string $type

给你的例子

<img src="{$link->getImageLink($product.link_rewrite, $image.id_image, 'large_default')}"  />
于 2013-11-09T07:17:32.123 回答
0

第 1 步:如果您有 id_product,请编写一个获取 id_image 属性的函数,如下所示:

private static function getCover($product_id) {
  $sql = 'SELECT id_image FROM '._DB_PREFIX_.'image WHERE cover = 1 AND   id_product='.$product_id;
  $result = Db::getInstance()->getRow($sql);
  return $result['id_image'];
}

第 2 步:然后使用如下代码获取图像路径:

$id_image = self::getCover($product['id_product']);
$image_path = $id_image.'-home_default/'.$product['link_rewrite'].'.jpg';

注意:$product 是一个从执行 sql 语句得到的数组

于 2015-07-09T21:33:25.647 回答