在配置smarty 3.1.12版时,我遇到了一些问题。
当我尝试从数据库中提取一些数据时,它运行“致命错误:在F中的非对象上调用成员函数createTemplate():在第47行上的... \ smarty \ sysplugins \ smarty_internal_templatebase.php”
但是如果程序没有从数据库中提取,它运行正常。例如:
<?php
include "smarty/smarty.class.php";
$smarty->assign('title', 'I'm title');
$smarty->assign('content', 'I'm content');
$smarty->display('test.html');
?>
以下是我正在使用的代码。
inc.php
<?php
// Load smarty class file.
require("sys.smarty.php");
$smarty = new Smarti();
?>
sys.smarty.php
<?php
// Load smarty class file.
require("smarty/smarty.class.php");
class Smarti extends Smarty{
function Smarti() {
$this->setTemplateDir("../smarty/templates");
$this->setConfigDir("../smarty/configs");
$this->setCompileDir("../smarty/templates_c");
$this->setCacheDir("../smarty/cache");
}
}
?>
我不知道哪里出了问题。我可以通过其他方式从数据库中提取数据,因此这不是数据库问题。你们能借给我一个手吗?谢谢〜
答案 0 :(得分:3)
Smarty constructor
将成员变量设置为自身。从扩展的constructor
课程的Smarti
开始。
class Smarti extends Smarty{
function Smarti() {
$this->smarty = $this;
...
但最好还是调用Smarty构造函数。
class Smarti extends Smarty{
function Smarti() {
parent::__construct();
...