Thinkphp 控制器
控 制 器:
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/CeShi
html中:
<!--点击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 控制器的更多相关文章
- ThinkPHP2.2框架执行流程图,ThinkPHP控制器的执行流程
ThinkPHP2.2框架执行原理.流程图在线手册 ThinkPHP控制器的执行流程 对用户的第一次URL访问 http://<serverIp>/My/index.php/Index/s ...
- ThinkPHP控制器
ThinkPHP控制器Controller 1.什么是控制器 在MVC框架中,其核心就是C(Controller)控制器.主要用于接收用户请求,处理业务逻辑. 2.控制器的定义 在一个ThinkPHP ...
- Thinkphp控制器,1.多层控制器2.多级控制器
1.多层控制器 ThinkPHP的控制器支持多层和多级,多层指的是控制器可以分层,例如除了默认的Controller控制器层(我们可以称之为访问控制器),还可以添加事件控制器(层),例如: ├─Con ...
- 6月13 ThinkPHP控制器
控制器 控制器是MVC模式中的核心,tp默认有一个Index控制器: 1.控制器的命名规则:新建一个主页面的控制器 在JiaoWu/Home/Controller下新建一个文件:MainControl ...
- thinkphp 控制器定义
控制器和操作 一般来说,ThinkPHP的控制器是一个类,而操作则是控制器类的一个公共方法. 下面就是一个典型的控制器类的定义: <?php namespace Home\Controller; ...
- 关于ThinkPHP控制器的方法失效的问题
今天发现控制器的方法失效了,用了排除法,找了长时间的原因,都没有找出来,后来干脆把home模块中的控制器和视图文件都复制到bbs模块下,竟然也不行. 这说明了控制器和视图没有问题,一定是模块的配置有问 ...
- ThinkPHP控制器输出防止乱码小技巧
在控制器中加一句:试试看 header('content-type:text/html;charset=utf-8');
- thinkphp 控制器unset删除对象变量失败。。
今儿开发过程中发现 tp是unset 变量失败..具体代码 foreach( $this->menu as $k => $v){ if(0 == $v['flag']) unset($th ...
- thinkphp控制器的使用
控制器的使用 2.1url如何调用控制器 以典型的URL为例 http://localhost/shop/index.php/home/index/test /*home/controller/in ...
随机推荐
- LED驅動芯片 兩種恒流控制方式
下面要說的是,兩種恒流控制模式的開關電源,從而產生兩種做法.這兩種做法無論是原理,還是器件應用,還是性能差別,相當都較大. 首先說原理.第一種以現在恒流型LED專用IC為代表,主要如9910系 ...
- Convert Sorted Array to Binary Search Tree——LeetCode
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题目 ...
- Java学习日记-2.1 运算符
1. 赋值运算符 赋值运算符是有值的 int i; System.out.println(i = 5); //输出5 正因为赋值运算符有值,所以可以可以连等地赋值 int j,k,l,m,n; j = ...
- AOJ 0558 广度优先搜索
题意:在 H * W 的地图里有 N 个工厂,每个工厂分别生产硬度为1-N 的奶酪,有一只老鼠准备把所有奶酪都吃完.老鼠的初始体力值为1,每吃一个奶酪体力值加 1.已知老鼠不能吃硬度大于当前体力值的奶 ...
- Matchers and assertthat
assertThat的一般句型为: assertThat([value],[matcher statement]); 这种断言的优点有: 1.更具有可读性:该语法允许我们以“主谓宾”的方式来思考(as ...
- otl获得sql出错位置(oracle)
项目的一个需要,要获得sql出错的位置,从而给出类似sqlplus的错误提示(如下) sql出错原因易获得,记录在otl_exception::msg,但出错位置就不是那么容易了. 默认情况下otl异 ...
- C++ —— 库函数的 语法解析
1.__declspec 用法总结 链接:http://blog.chinaunix.net/uid-24517893-id-2749061.html 详解2:http://www.01yun.com ...
- Guice学习(一)
Guice学习(一) Guice是Google开发的一个轻量级依赖注入框架(IOC).Guice非常小而且快,功能类似与Spring,但效率上网上文档显示是它的100倍,而且还提供对Servlet,A ...
- C#递归搜索指定目录下的文件或目录
诚然可以使用现成的Directory类下的GetFiles.GetDirectories.GetFileSystemEntries这几个方法实现同样的功能,但请相信我不是蛋疼,原因是这几个方法在遇上[ ...
- Python第一课
一.模块的常用方法 __name__ #主模块name值main __file__ #文件所在的路径+文件名 __doc__ #文件级别的注释 二.函数 参数 参数默认值 可变参数 ...