我正在为一些公寓的网站工作。
我有一些数据在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的卧室数。
有人知道我该怎么做吗?
这听起来像是你应该在PHP级别而不是智能级别做的工作。我建议您在分配给smarty之前进行替换,然后发送转换后的数组,这将更容易(更干净)