您好我试图将我的php文件中的值发送到tpl文件。
当我在php文件中print_r时,我看到我的值是在数组中定义的,但是当我print_r我的tpl文件时,我没有看到这个元素。
<img src="{$product.manufacturer_name}" alt="" title="" itemprop="image" />
和我的控制器
$special = Product::getProducts((int)$this->langID , 0,6, 'name', 'DESC', 51);
foreach ($special as $specia)
{
$id_image = Product::getCover($specia['id_product']);
// get Image by id
if (sizeof($id_image) > 0)
{
$image = new Image($id_image['id_image']);
// get image full URL
$image_url = _PS_BASE_URL_._THEME_PROD_DIR_.$image->getExistingImgPath()."-home_default.jpg";
$specia['manufacturer_name']=$image_url;
}
}
$dir = _PS_MODULE_DIR_.'/ptspagebuilder/views/templates/front/widgets/sub/products.tpl';
$tdir = _PS_ALL_THEMES_DIR_ . _THEME_NAME_ . '/modules/ptspagebuilder/views/templates/front/widgets/sub/products.tpl';
if (file_exists($tdir)) {
$dir = $tdir;
}
// get Product cover image (all images is possible retrieve by
// Image::getImages($id_lang, $id_product) or
// $productInstance->getImages($id_lang))
$setting['product_tpl'] = $dir;
$setting['products'] = $special;
$output = array('type' => 'flashsale','data' => $setting);
return $output;
}
答案 0 :(得分:1)
如果$special
包含数组,而不是脚本中的错误,请在foreach循环中更改变量的副本。尝试改变
foreach ($special as $specia)
至foreach ($special as $k=>$specia)
$specia['manufacturer_name']=$image_url;
至$special[$k]['manufacturer_name']=$image_url;
答案 1 :(得分:0)
实际上我没有解决你的问题。你说你在php文件中分配了值,但我看不到任何分配的值。要在php文件中分配值,您必须在smarty变量中赋值,以便您可以在tpl文件中访问它。为此你必须编写类似的代码:
首先在您的控制器中您必须分配如下值:
$this->smarty->assign(array(
'product' => $containing_product,
));
$ product包含您要在tpl文件中访问的值。
现在在您的tpl文件中,您可以检查它:
{var_dump($product)}
现在在你的tpl文件中你可以使用
<img src="{$product}" alt="" title="" itemprop="image" />