Thinkphp 控制器
2016-06-30 13:52
387 查看
控 制 器:
1.命名方法:新建一个主页面的控制器
controller文件夹下新建一个文件,命名为:MainController.class.php首字母都大写,称为驼峰命名法
eg:<?php namespace Home\Controller; use Think\Controller; class MainController extends Controller { public function XianShi() { echo "主页面显示"; } }
浏览器地址:
运行结果:
2. C()方法
C(名称) 获得配置变量(convertion.php config.php)信息
C(名称,值) 设置配置变量信息
2.1 读取配置:
public function XianShi() { //echo "主页面显示"; //读取配置,不区分大小写 $model=C('URL_MODEL'); echo $model; }
运行结果为:1
2.2 动态配置,修改配置C('参数名称','新的参数值');
C('URL_MODEL',0); echo U("XianShi");
3.前置和后置操作
<?php namespace Home\Controller; use Think\Controller; class MainController extends Controller { //前置操作 public function _before_XianShi() { echo "执行显示之前"."<br/>"; } public function XianShi() { echo "主页面显示"."<br/>"; } //后置操作 public function _after_XianShi() { echo "执行显示之后"."<br/>"; } }
运行结果:
4.Action参数绑定
4.1 一个参数:
public function XianShi($name) { echo $name."主页面显示"."<br/>"; }
在浏览器地址栏中添加参数值: http://localhost:8080/thinkphp/index.php/Home/Main/XianShi/name/zhangsan
运行结果:
4.2 多个参数
public function XianShi($name,$ids) { echo $name.$ids."主页面显示"."<br/>"; }
在浏览器地址栏中添加参数值: http://localhost:8080/thinkphp/index.php/Home/Main/XianShi/name/zhangsan/ids/666 写参数是前后顺序改变也无所谓
运行结果:
5.调用模版显示
public function CeShi() { $this->display(); }
新建一个方法,调用模版显示
在View文件夹下。新建一个文件夹Main(因为控制器的名称现在是Main),
在里面新建一个文件CeShi.html(如图)
<body> <!--点击a标签,调用一个方法 --> <a href="/thinkphp/index.php/Home/Main/XianShi/ids/1/name/zhangsan">调用显示操作</a> </body> </html>
浏览器地址栏:http://localhost:8080/thinkphp/index.php/Home/Main/CeShi
运行结果:
点击字体后出现页面:
6. URL大小写
浏览器地址栏中对大小写不敏感Thinkphp/conf/convertion.php中可以修改url大小写:
'URL_CASE_INSENSITIVE' => true, // 默认false 表示URL区分大小写 true则表示不区分大小写
复制后粘贴到自己的配置文件中,true改为false发现还是不区分大小写(有bug),
知道有这个配置就好
7.后台注册变量,在前台访问
7.1
public function CeShi() { $this->assign("text","Hello"); $this->display(); }
7.2 修改访问的标记:
由原来的{ }变为<{ }>'TMPL_L_DELIM' => '<{', // 模板引擎普通标签开始标记 'TMPL_R_DELIM' => '}>', // 模板引擎普通标签结束标记
7.3
浏览器地址栏:http://localhost:8080/thinkphp/index.php/Home/Main/CeShihtml中:
<!--点击a标签,调用一个方法 --> <a href="/thinkphp/index.php/Home/Main/XianShi/ids/1/name/zhangsan">调用显示操作</a> <div><{$text}></div>
7.4 运行结果:
8. 修改模版引擎,可将下面'Think'-->'Smarty',不过两者差别不大,不建议修改
'TMPL_ENGINE_TYPE' => 'Think', // 默认模板引擎 以下设置仅对使用Think模板引擎有效
9. 输入变量:get,post方式
CeShi.html:<body>
<!--点击a标签,调用一个方法 --> <a href="/thinkphp/index.php/Home/Main/XianShi/ids/1/name/zhangsan">调用显示操作</a> <div><{$text}></div>
<!--点击提交,提交到显示方法 -->
<!--<form action="/thinkphp/index.php/Home/Main/XianShi/ids/1/name/zhangsan" method="post"> -->
<form action="__CONTROLLER__/XianShi" method="post">
<input type="text" name="name" />
<input type="submit" value="提交" />
</form>
MainController.class.php
<?php namespace Home\Controller; use Think\Controller; class MainController extends Controller { public function XianShi() { //echo $name.$ids."主页面显示"."<br/>"; //读取配置,不区分大小写 //C('URL_MODEL',0); //echo U("XianShi"); echo $_POST["name"]."<br/>"; } public function CeShi() { $this->assign("text","Hello"); $this->display();
//调取所有常量信息,加true可分类显示
//var_dump(get_defined_constants(true));
} }
运行结果:
==>
常量:'__ROOT__' => string '/thinkphp' (length=9)找根目录
'__SELF__' => string '/thinkphp/index.php/Home/Main/CeShi' (length=35)当前所有路径(相比action,能取更多内容)
'__APP__' => string '/thinkphp/index.php' (length=19)取到入口文件
'__MODULE__' => string '/thinkphp/index.php/home' (length=24)取到当前模块
'__CONTROLLER__' => string '/thinkphp/index.php/home/main' (length=29)取到当前控制器
'__ACTION__' => string '/thinkphp/index.php/home/main/ceshi' (length=35)取到当前操作方法
//调取所有常量信息,加true可分类显示
//var_dump(get_defined_constants(true));
10.实现登录页面的操作
MainController.class.php中写一个login方法
public function Login() { //实现2个逻辑:显示页面,实现登陆 if(empty($_POST)) { $this->display(); } else { //实现登录 echo "实现登陆!"; } }
View下新建Login.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>登录</title> </head> <body> <form action="__ACTION__" method="post"> <input type="text" name="uid" /> <input type="password" name="pwd" /> <input type="submit" value="登录" /> </form> </body> </html>
运行结果:
==>
相关文章推荐
- ThinkPHP 框架执行流程分析
- php中print_r 和var_dump 打印变量的区别。
- Laravel 5 中的配置
- php
- server2008服务器IIS7 +PHP5.3出现500错误的排错方法
- [分享]面向中大型应用的PHPWeb开发框架Ice
- php将json格式的数据直接存入mysql数据库
- wampserver 多个PHP版本配置后,无法启动
- PHP页面上输出空白隐形字符65279解决办法
- 理解php-cli环境
- PHPMailer发送邮件出现Permission denied的解决办法
- 理解php中的yield
- curl php
- 那些最好的轮子 - PHP篇
- Windows2003下php5.4安装配置教程(IIS)
- php判断检测一个数组里有没有重复的值
- 【php】利用php的构造函数与析构函数编写Mysql数据库查询类 (转)
- php -> =>的问题
- Given a positive integer N, you should output the most right digit of N^N.
- php mysql查询3级分类下对应的一级和二级分类