项目名/入口文件/<index.php>/模块/控制器/方法
------------------------------------------------------------------------------------------------------
控制器配置格式 namespace Home(模块)controller
Use thinkcontroller;
class IndexController(控制器).extends controller
------------------------------------------------------------------------------------------------------
(IS_POST/IS_GET)判断获取的类型
------------------------------------------------------------------------------------------------------
M连接数据库
------------------------------------------------------------------------------------------------------
I()方法取数据
------------------------------------------------------------------------------------------------------
create 创建数据对象(把取到的数据转换成需要的类型)
------------------------------------------------------------------------------------------------------
__SONTROLLER__ / __PUBLIC__
------------------------------------------------------------------------------------------------------
success 跳转
------------------------------------------------------------------------------------------------------
assign(模板赋值) display(模板渲染:映射界面)
C(config) 读取配置 M(model)(表名) 模板 生成 连接数据库 U(url)('地址表达式',['参数'],['伪静态后缀'],['显示域名']) I(input) 获取各种系统提交的数据 D() 增加
oredr 字段排序方法 (一般拿ID排) desc降序 asc 升序 limit 限制结果数量 page分页(页码,数量条数) group 分组
判断类型: IS_POST 判断是否以post方法提交
IS_GET 判断是否以GET方式提交
IS_AJAX 判断是否以ajax方式提交
aiaxReturn($data,数据格式):返回ajax格式的数据
跳转 /重定向
$this->success(提示内容,页面地址,跳转的时间)
$this->error(提示内容,页面地址,跳转的时间)当前页面出现错误的时候跳转到上一个页面
redirect();直接跳转
路由 (1) 开启路由
'URL_ROUTER_ON' => true,
(2) 配置虚假路径
'URL_ROUTE_RULES'=>array(
'ww/:id' 假路径 =>'Index/shuai/' 真实路径
),
(3) 注意事项
1)全局配置中可以改变模块路径
2)模块配置中只可以改变控制器路径/假控制器/假方法/:id=>控制器/方法/:参数
模板替换:
__ROOT__: 会替换成当前网站的地址(不含域名)
__APP__: 会替换成当前应用的URL地址 (不含域名)
__MODULE__:会替换成当前模块的URL地址 (不含域名)
__CONTROLLER__(__或者__URL__ 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
__ACTION__:会替换成当前操作的URL地址 (不含域名)
__SELF__: 会替换成当前的页面URL
__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/
缓存 ->cache(true) //缓存 ->cache(true,60,'xcache') 使用xcache缓存,缓存有效期60秒。注:第一个参数表示提示信息,第二个参数表示跳转地址,第三个参数是跳转时间(单位为秒)
COMMENT方法 用于在生成的SQL语句中添加注释内容 例如: $this->comment('查询考试前十名分数')
->fetchSql(true) //fetchSql是3.2.3新增的连贯操作方法,用于直接返回SQL而不是执行查询
echo $info->getLastSql(); //打印sql语句
模板赋值:
$this->assign('模板使用的变量名'$数据名);
// 下面的写法是等效的
$this->name = $value;
- assign方法必须在
display和show方法
之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量例外)
渲染模板:
渲染模板输出最常用的是使用display方法 display('[模板文件]'[,'字符编码'][,'输出类型'])
1. // 不带任何参数 自动定位当前操作的模板文件
$this->display();
2.// 指定模板输出
$this->display('edit');
3. 表示调用当前模块下面的edit模板
$this->display('Member:read');
渲染内容:show('渲染内容'[,'字符编码'][,'输出类型']) 例如,$this->show($content);
注意模板标签的{
和$
之间不能有任何的空格,否则标签无效。
标签:volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。
在控制器中首先对模版赋值:
$User = M('User');
$list = $User->limit(10)->select();
$this->assign('list',$list);
入口文件:index.php
目录结构:核心,Thinkphp
公共资源,public
应用目录,application
命名:首字母大写 类名controller.class.php
文件名同名
命名空间:namespace
配置文件:config.php 动态配置C("字段名",value);
视图:视图下index文件夹下的xxx.html
单对多表查询时:建两个表,从一个表中找另一个表中有的信息
多对多表查询时:建三个表,从公共的表中找其他表中都有的信息把他们俩接起来