需要你的帮助!如何使用产品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));
答案 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语句得到的数组