1

我正在为一些公寓设计一个网站。

我有一些数据在 foreach 循环中分配给 Smarty。

$i = 0;
foreach ($obj2 as $array) {
   $smarty->assign('name'.$i, $obj2[$i]['name']);
   $smarty->assign('numbedrooms'.$i, $obj2[$i]['number_of_bedrooms']);
   $smarty->assign('numbathrooms'.$i, $obj2[$i]['number_of_bathrooms']);
   $smarty->assign('sqfeet'.$i, $obj2[$i]['square_feet']);
   $smarty->assign('deposit'.$i, $obj2[$i]['deposit']);
   $smarty->assign('rent'.$i, $obj2[$i]['rent']);
   $smarty->assign('vacantunits'.$i, $obj2[$i]['vacant_units']);
   $i++;
}

加载模板时($smarty->display('template.tpl');),我希望所有数据都可以通过replace(例如replace:'[[lowestrate]]':{$lowestrate}(来自另一个代码块的示例))。

但是,由于项目的数量$obj2可能会发生变化(目前是 3 个),我不能只说replace:'[[name1]]':{$name1}. (更不用说需要多长时间了)

此外,需要替换的原因是页面内容是从带有所见即所得编辑器的 CMS 系统管理的,编辑器可以在其中键入[[lowestrate]]以将其替换为成本最低的公寓。他们应该能够键入[[name1]]以将其替换为第一间公寓的名称,或[[numberbedrooms1]]将其替换为公寓 1 的卧室数量。

有人知道我应该如何去做吗?

4

1 回答 1

0

这听起来像是你应该在 PHP 级别而不是 smarty 级别做的工作。我建议您在分配给 smarty 之前进行替换,然后发送转换后的数组,这会容易得多(并且更清洁恕我直言)

于 2012-08-06T05:18:23.673 回答