我对Smarty来说相对较新,似乎无法解决这个问题。
在我的php控制器中,我会多次设置“Product”类,因为我需要显示它。例如,如果我的页面上有5个不同的项目,我会将“产品”实例化5次。然后我创建一个包含这些的数组。它是这样的: (我的对象充满了产品上的信息)。
代码:
$product_array = array (
0 => Object1,
1 => Object2); etc.
然后我将该数组分配给一个smarty变量{$ product_array}。 一旦进入我的.tpl,我就会看到显示产品的循环。那时我需要将$ products_array [0]或{$ products_array.0}分配给另一个变量$ products,它会显示我需要的关于产品的所有内容。然后它会再次循环显示{$ products_array.1}等等。
然而,这似乎不可能看到我试图实现这一点(我甚至尝试使用{php}羞辱我)我似乎无法弄明白。 我收到此错误:类Product的对象无法转换为字符串。
答案 0 :(得分:1)
我很确定你不能在{php}
标签内混合使用聪明的东西。但问题是为什么这样做?为什么不创建所有产品并将它们放在一个数组中,然后将其分配给smarty并以巧妙的语法循环它?
{php}
$accesories = $GLOBALS['accessories'];
$products = array();
foreach($accesories as $k => $v)
{
var_dump($instantProduct = new Product($accesories[$k], TRUE));
$products[$k] = new Product($accesories[$k], TRUE);
}
$smarty->assign('products', $products);
{/php}
// now loop and conditions in smarty
那说你现在真的应该解决这个问题,把这个逻辑转移到你用作“控制器”的任何东西。它可能会揭示您的设计中更广泛的问题,您将不得不以这种或那种方式解决。