include("main.inc.php");
$smarty->caching=true;
$id=$_GET['id'];
$mysqli=new mysqli("localhost","root","123456","test");
$query="select * from user where id=$id";
if(!$smarty->is_cached ("demo2.tpl",$id))
{
echo "sfd";
$arr=$result->fetch_assoc(); ->assign("arr",$arr);
}
//display の 2 番目のパラメータを設定しない場合、明らかに、毎回キャッシュされたファイルのみが読み取られます。これは、私たちが望む結果ではありません。
//$smarty->display("demo2.tpl");
//複数ページのキャッシュを有効にする
$smarty->display("demo2.tpl",$id);
理由はエラーが報告されましたか?、、
致命的なエラー: D:serverApache2.2htdocssutraSmartysyspluginssmarty_internal_templatebase.php:755 で、キャッチされない例外 'SmartyException' メッセージ: Smarty_Internal_TemplateBase- >__call( 'is_cached', Array) #1 D:serverApache2.2htdocssutrasmartdemo2.php(8): Smarty->is_cached('demo2.tpl', '19') #2 {main} が D:serverApache2 でスローされました。 2htdocssutraSmartyssyspluginssmarty_internal_templatebase.php (755 行目)
ディスカッションへの返信 (解決策)
お使いの Smarty のバージョン番号を確認してください
is_cached メソッドは Smarty 3 にのみ適用できます
Smarty 2 の場合は isCached です
私の Smarty 3 、ダウンロードされたパッケージは Smarty-3.1.11.tar.gz で、is_cached プロンプトを使用しています: 致命的なエラー: キャッチされない例外 'SmartyException' とメッセージ「不明なメソッド 'is_cached' の呼び出し。」が表示されますが、isCached を使用すると正常に動作します。
さて、状況は次のとおりです。smarty3.x のバージョンは、smarty2.x とは異なります。Smarty3.x のカスタム関数は $smarty->registerPlugin ("function", "tpl template tag", "you) を使用する必要があります。カスタム関数」)