ThinkPHP学习笔记(一)环境搭建
ThinkPHP学习笔记(二)MVC模式和URL访问
ThinkPHP学习笔记(三)输出
ThinkPHP学习笔记(四)模型与数据库
ThinkPHP学习笔记(五)使用模型操作数据库之CURD
ThinkPHP学习笔记(六)使用CURD对User数据库数据进行删除和修改
ThinkPHP学习笔记(七)深入学习数据库查询
一、新建项目
ThinkPHP环境搭建与新建项目及项目的各个目录基本使用说明请参考:ThinkPHP学习笔记(一)环境搭建 ; ThinkPHP学习笔记(二)MVC模式和URL访问
二、输出
1、原生输出:在ThinkPHP的MVC的“C文件夹class”中添加代码
<?php
class IndexAction extends Action {
public function index(){
echo('hello');
}
}
然后浏览器输入:http://localhost/ThPHP/index.php/index/index/ 可以看到浏览器打印出 hello
2、ThinkPHP的 display() 输出:
ThinkPHP提供了MVC开发方式,M(提供数据),C(模块,主要处理数据和逻辑),V(用来展示C从M中拿到并处理后的数据)。C如何把数据传给V ?
(1)C文件夹中class中添加代码:
<?php
class IndexAction extends Action {
public function index(){
echo('hello');
}
public function show() {
$name='lizhongfu';
$this->assign('data',$name);
$this->display();
}
}
用display()方法输出,传递参数用assign(),其参数中,data为key,$name为value。这样C把数据传向了V,还要处理V怎么接收,如下:
V文件夹是项目目录下的Tpl文件夹,为了对应class IndexAction 下的show() 方法,Tpl文件夹中新建Index文件夹来对应IndexAction,新建show.html页面来对应show方法,这里的show.html的名字要和class IndexAction下的show()方法同名,这样就建立起了V和C的关系;
(2)下面要解决的就是V如何接受C传过来的参数:
1> 用 {$ key }来接受C中传过来的参数,key对应$this->assign('data',$name); 中的 ‘data’,Tpl->Index->show.html中的代码如下:
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>this is <{$data}></h1>
</body>
</html>
这样浏览器访问 http://localhost/ThPHP/index.php/index/show/ ,就可以在show.html中展示 $this->assign('data',$name);传过来的$name的value了。
2>{$ key }来接受C中传过来的参数这种方式是默认的方式,为了后期方便维护,区分与其他框架,经常需要修改这种默认的方式,修改方法是修改项目的Home目录中的Conf文件夹下的config.php文件:
添加:
'TMPL_L_DELIM'=>'<{', //修改左定界符
'TMPL_R_DELIM'=>'}>', //修改右定界符
这样show.html 中代码应该这样:
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>this is <{$data}></h1> <!-- 用 <{ 替代了 { , }> 替代了 } -->
</body>
</html>
如果刷新浏览器发现不能正确显示或者出现未知错误等现象,首先应清除一下缓存,然后运行,如果还有错误,再检查代码。
清除缓存方法:进入项目的 ../Runtime文件夹,删除 ~runtime.php 文件,删除Cache文件夹中的文件。
最后运行效果: