获取图像路径prestashop 1.5

时间:2013-05-15 11:34:28

标签: prestashop

需要你的帮助!如何使用产品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));

3 个答案:

答案 0 :(得分:3)

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

$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。希望这有帮助

答案 1 :(得分: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')}"  />

答案 2 :(得分: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语句得到的数组