0

smarty バージョン 3.1.12 を構成するときに問題が発生しました。

データベースからデータを抽出しようとすると、「Fatal error: Call to a member function createTemplate() on a non-object in F:...\smarty\sysplugins\smarty_internal_templatebase.php on line 47」が実行されます。

ただし、プログラムがデータベースから抽出されない場合は、正常に実行されます。例えば:

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

どこが間違っていたのかわかりません。他の方法でデータベースからデータを抽出できるので、データベースの問題ではありません。手を貸してくれませんか?もぅ~

4

1 に答える 1

3

Smarty constructor、メンバー変数をそれ自体に設定します。constructorあなたの拡張Smartiクラスのからそれをしてください。

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

ただし、Smartyコンストラクター自体を呼び出す方がよいでしょう。

class Smarti extends Smarty{
  function Smarti() {
    parent::__construct();
    ...
于 2012-10-27T01:24:42.113 に答える