ThinkPHP循环标签的使用
这篇文章的环境与《ThinkPHP框架试用》一文大致相同,区别在于我更改了入口文件,将项目文件单独放在一个文件夹下,方便管理!更改后的入口文件大致如下:
<?php
define('THINK_PATH', 'ThinkPHP/');
define('APP_NAME', 'myApp');
define('APP_PATH', 'myapp');
require(THINK_PATH."/ThinkPHP.php");
$App = new App();
$App->run();
?>
define('THINK_PATH', 'ThinkPHP/');
define('APP_NAME', 'myApp');
define('APP_PATH', 'myapp');
require(THINK_PATH."/ThinkPHP.php");
$App = new App();
$App->run();
?>
就改动了一句。试过了ThinkPHP的模板功能了,可是只用到了普通的模板替换,ThinkPHP可是支持循环标签模板的,看了看附带的例子,弄明白了它的使用方法!模板文件代码如下(index.html):
<html>
<head><title>{$title}</title></head>
<body>
{$content}<br>
<ul>
<volist name="list" id="news">
<li>{$news.title}</li>
</volist>
</ul>
</body>
</html>
<head><title>{$title}</title></head>
<body>
{$content}<br>
<ul>
<volist name="list" id="news">
<li>{$news.title}</li>
</volist>
</ul>
</body>
</html>
看到了吧!volist里面就是嵌套的循环模板,注意观察它的属性id,并留意name属性,再来看看代码文件
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
public function index(){
header("Content-Type:text/html; charset=utf-8");
$this->assign('title','循环标签的例子');
$this->assign('content','循环标签');
//这里没有连接数据库,我用数组建立了部分测试数据,用两种方式添加数据
$news=array(array('title'=>'Title1'),array('title'=>'Title2'));
array_push($news,array('title'=>'Title3'));
//注意到这里的list就是模板中volist的name
$this->assign('list',$news);
$this->display();
}
}
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
public function index(){
header("Content-Type:text/html; charset=utf-8");
$this->assign('title','循环标签的例子');
$this->assign('content','循环标签');
//这里没有连接数据库,我用数组建立了部分测试数据,用两种方式添加数据
$news=array(array('title'=>'Title1'),array('title'=>'Title2'));
array_push($news,array('title'=>'Title3'));
//注意到这里的list就是模板中volist的name
$this->assign('list',$news);
$this->display();
}
}
建立了一个二维数组做测试数据,替换后的结果如下:
<html>
<head><title>循环标签的例子</title></head>
<body>
循环标签<br>
<ul>
<li>Title1</li><li>Title2</li><li>Title3</li></ul>
</body>
</html>
使用起来相当的简单!
<head><title>循环标签的例子</title></head>
<body>
循环标签<br>
<ul>
<li>Title1</li><li>Title2</li><li>Title3</li></ul>
</body>
</html>