smarty - 致命错误:在非对象上调用成员函数createTemplate()

时间:2012-10-27 00:55:58

标签: php smarty

在配置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");      
    }
}
?>

我不知道哪里出了问题。我可以通过其他方式从数据库中提取数据,因此这不是数据库问题。你们能借给我一个手吗?谢谢〜

1 个答案:

答案 0 :(得分:3)

Smarty constructor将成员变量设置为自身。从扩展的constructor课程的Smarti开始。

class Smarti extends Smarty{
  function Smarti() {
    $this->smarty = $this;
    ...

但最好还是调用Smarty构造函数。

class Smarti extends Smarty{
  function Smarti() {
    parent::__construct();
    ...