在今天编写项目时遇到一个问题,是关于Thinkphp不支持include动态包含的问题。在网上遍寻答案才找到了一个比较简单且完美的解决方案。其实这个问题在编写过程中很容易遇到,模板头部会包含不同用户的信息,但是Thinkphp不支持include动态包含。
解决方案
模板包含不再使用include,而使用R方法。原因是include包含文件时直接调用了模板的静态文件而没有经过控制器中的方法,因而先使用R方法先调用指定控制器中的方法获取数据。例如:
{:R('Common/header')}
而此时如果所包含的文件继续使用display()方法输出会导致加载模板失败超时
因此在模板输出是必须使用T方法,
$this->display(T('Common:header'));