学习 PHP模板引擎Smarty入门使用 出错:C:\AppServ\www\mb\smarty\Smarty.class.php on line 780
example6.tpl模板文件目录templates<html><head><title>这是一个foreach使用的例子</title></head><body>这里...
example6.tpl 模板文件 目录 templates
<html>
<head><title>这是一个foreach使用的例子</title></head>
<body>
这里将输出一个数组:<br>
{foreach from=$newsArray item=newsID}
新闻编号:{$newsID}<br>
新闻内容:{$newsTitle}<br><hr>
{foreachelse}
对不起,数据库中没有新闻输出!
{/foreach}
</body>
</html>
example6.php 目录 根目录下
<?php
include_once("Smarty/Smarty.class.php");
$smarty = new Smarty();
$smarty->templates("templates");
$smarty->templates_c("templates_c");
$smarty->cache("cache");
$smarty->cache_lifetime = 0;
$smarty->caching = true;
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
$array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");
$array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");
$array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");
$array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");
$array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");
$array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");
$smarty->assign("newsArray", $array);
//编译并显示位于./templates下的index.tpl模板
$smarty->display("example6.tpl");
?>
运行PHP程序,出现
Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown function 'templates'.' in C:\AppServ\www\mb\smarty\Smarty.class.php:780 Stack trace: #0 [internal function]: Smarty->__call('templates', Array) #1 C:\AppServ\www\mb\example6.php(13): Smarty->templates('templates') #2 {main} thrown in C:\AppServ\www\mb\smarty\Smarty.class.php on line 780
一楼的我早就用过了,运行没有问题,但是读取不了数据出来。是不是我文件权限,还是少装了什么东西。 展开
<html>
<head><title>这是一个foreach使用的例子</title></head>
<body>
这里将输出一个数组:<br>
{foreach from=$newsArray item=newsID}
新闻编号:{$newsID}<br>
新闻内容:{$newsTitle}<br><hr>
{foreachelse}
对不起,数据库中没有新闻输出!
{/foreach}
</body>
</html>
example6.php 目录 根目录下
<?php
include_once("Smarty/Smarty.class.php");
$smarty = new Smarty();
$smarty->templates("templates");
$smarty->templates_c("templates_c");
$smarty->cache("cache");
$smarty->cache_lifetime = 0;
$smarty->caching = true;
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
$array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");
$array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");
$array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");
$array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");
$array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");
$array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");
$smarty->assign("newsArray", $array);
//编译并显示位于./templates下的index.tpl模板
$smarty->display("example6.tpl");
?>
运行PHP程序,出现
Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown function 'templates'.' in C:\AppServ\www\mb\smarty\Smarty.class.php:780 Stack trace: #0 [internal function]: Smarty->__call('templates', Array) #1 C:\AppServ\www\mb\example6.php(13): Smarty->templates('templates') #2 {main} thrown in C:\AppServ\www\mb\smarty\Smarty.class.php on line 780
一楼的我早就用过了,运行没有问题,但是读取不了数据出来。是不是我文件权限,还是少装了什么东西。 展开
2个回答
展开全部
一是设置那三目录用
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->cache_dir = './cache/'; 并确保这三目录存在并且路径正确.
二是你模板写法有误
应改为
新闻编号:{$newsID.newsID}<br>
新闻内容:{$newsID.newsTitle}<br><hr>
三开发期间最好别启用SMARTY CACHE 将 $smarty->caching = false;
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->cache_dir = './cache/'; 并确保这三目录存在并且路径正确.
二是你模板写法有误
应改为
新闻编号:{$newsID.newsID}<br>
新闻内容:{$newsID.newsTitle}<br><hr>
三开发期间最好别启用SMARTY CACHE 将 $smarty->caching = false;
展开全部
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->cache_dir = './cache/';
用上面部分替换掉下面这一段。
$smarty->templates("templates");
$smarty->templates_c("templates_c");
$smarty->cache("cache");
补充回答:
逻辑页面数组的传递方式和模板页面foreach的写法不匹配,随便改哪一边都可以。
下面是模板页面的改法,没测试过,但应该没问题,你直接把模板里面foreach那一整段替换成下面这样就可以了。
{foreach from=$newsArray item=news}
{foreach name=sub from=$news item=item}
{if $smarty.foreach.sub.first} 新闻编号:{$item}<br>{else}新闻内容:{$item}<br><hr>{/if}
{/foreach}
{foreachelse}
对不起,数据库中没有新闻输出!
{/foreach}
$smarty->compile_dir = './templates_c/';
$smarty->cache_dir = './cache/';
用上面部分替换掉下面这一段。
$smarty->templates("templates");
$smarty->templates_c("templates_c");
$smarty->cache("cache");
补充回答:
逻辑页面数组的传递方式和模板页面foreach的写法不匹配,随便改哪一边都可以。
下面是模板页面的改法,没测试过,但应该没问题,你直接把模板里面foreach那一整段替换成下面这样就可以了。
{foreach from=$newsArray item=news}
{foreach name=sub from=$news item=item}
{if $smarty.foreach.sub.first} 新闻编号:{$item}<br>{else}新闻内容:{$item}<br><hr>{/if}
{/foreach}
{foreachelse}
对不起,数据库中没有新闻输出!
{/foreach}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询