我刚刚将一个站点移动到运行PHP 5.4的新服务器上。X,只能假设是为什么我在编译模板上得到这个错误,但作为编译的tpl.php文件生成不能工作到点的问题是什么,想知道是否有人可能知道?
TPL是Smarty,下面是导致错误的行:
原TPL文件代码:(smarty)
{assign var=darin value=$category.category_id}
编译错误文件:(从smarty编译到php缓存文件)
<?php $this->assign('darin', $this->_tpl_vars['category']['category_id'], false); ?>
由于其编译和转换,我不确定如何修复smarty函数,所以它编译正确的PHP代码,在缓存中编译,导致问题…什么好主意吗?
编译后的文件在前端显示的错误:
Warning: Illegal string offset 'category_id' in /websites/am/domain.com.au/var/cache/templates/customer/%%F3^F39^F3960A5D%%view.override.tpl.php on line 42
提前感谢,詹姆斯。
它的平均类别不是数组。
一次性打印{{$category}}
var,查看其类型
你应该怎么做:
-
删除缓存/编译文件,检查是否出现错误
-
如果发生错误,检查包含
$category
变量的内容。很简单,它可以不是一个数组或没有category_id
索引 -
如果你没有使用最新的Smarty版本,你应该考虑升级和测试最新的版本(这可能是一个错误)
如果没有帮助,请提供$category
变量数据