ThinkPHPThinkPHP-控制器控制器 控制器定义 多层控制器 Controller控制器层(访问控制器) Event控制器(事件控制器) StuController.class.php StuEvent.class.php 多级控制器 实例化控制器 Event控制器 $a = A('Stu','Event'); Home模块直接使用 $a = A('Stu'); 前置和后置自动调用 pu作者王明昌发布时间2018-01-16文章目录控制器控制器定义前置和后置自动调用Action参数绑定伪静态URL大小写URL生成AjAX返回跳转和重定向输入变量请求类型空操作(空方法)空控制器插件控制器操作绑定到类控制器控制器定义多层控制器 Controller控制器层(访问控制器) Event控制器(事件控制器) StuController.class.php 复制index(); echo "我是StuController"; } } ?> StuEvent.class.php 复制 多级控制器实例化控制器复制Event控制器 $a = A('Stu','Event'); Home模块直接使用 $a = A('Stu'); 前置和后置自动调用复制public function add(){ echo "我是add方法,"; } //前置调用 public function _before_add(){ echo "add方法前自动调用,"; } //后置调用 public function _after_add(){ echo "add方法后自动调用"; } Action参数绑定伪静态复制'URL_HTML_SUFFIX'=>'shtml' ----------- http://serverName/Home/Blog/read/id/1 变成 http://serverName/Home/Blog/read/id/1.shtml 伪静态后缀复制// 多个伪静态后缀设置 用|分割 'URL_HTML_SUFFIX' => 'html|shtml|xml' 禁止访问后缀复制//URL禁止访问的后缀设置 'URL_DENY_SUFFIX' = > 'pdf|ico|png|gif|jpg', 优先级复制//优先级 URL_DENY_SUFFIX的优先级比URL_HTML_SUFFIX要高。 URL大小写复制//true不区分大小写 false区分大小写 'URL_CASE_INSENSITIVE' =>true URL不区分大小写并不会改变系统的命名规范,并且只有按照系统的命名规范后才能正确的实现URL不区分大小写 URL生成 U('地址表达式',['参数'],['伪静态后缀'],['显示域名']) 复制[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2... 复制U('User/add') // 生成User控制器的add操作的URL地址 U('Blog/read?id=1') // 生成Blog控制器的read操作 并且id为1的URL地址 U('Admin/User/select') // 生成Admin模块的User控制器的select操作的URL地址 参数复制U('Blog/cate',array('cate_id'=>1,'status'=>1)) U('Blog/cate','cate_id=1&status=1') U('Blog/cate?cate_id=1&status=1') 伪静态后缀复制U('Blog/cate','cate_id=1&status=1','xml'); 例子复制U('Blog/read?id=1'); 普通模式: http://serverName/index.php?m=Blog&a=read&id=1 PATHINFO模式: http://serverName/index.php/Home/Blog/read/id/1 REWRITE模式: http://serverName/Home/Blog/read/id/1 兼容模式: http://serverName/Home/Blog/read/id/1.html 域名支持锚点支持复制U('Blog/read#comment?id=1'); 生成的URL地址可能是: http://serverName/index.php/Home/Blog/read/id/1#comment AjAX返回跳转和重定向3跳转复制redirect('User/index',3, '添加成功'); $this->redirect('User/index',array(), 3, '添加成功'); $this->success('添加成功',U('Admin/User/index')); 例子复制if($result){ //设置成功后跳转页面的地址,默认的返回页面是$_SERVER['HTTP_REFERER'] $this->success('新增成功', 'User/list'); } else { //错误页面的默认跳转页面是返回前一页,通常不需要设置 $this->error('新增失败'); } 设置跳转模板复制//默认错误跳转对应的模板文件 'TMPL_ACTION_ERROR' => THINK_PATH . 'Tpl/dispatch_jump.tpl', //默认成功跳转对应的模板文件 'TMPL_ACTION_SUCCESS' => THINK_PATH . 'Tpl/dispatch_jump.tpl', 输入变量获取变量复制$id = $_GET['id']; // 获取get变量 $name = $_POST['name']; // 获取post变量 $value = $_SESSION['var']; // 获取session变量 $name = $_COOKIE['name']; // 获取cookie变量 $file = $_SERVER['PHP_SELF']; // 获取server变量 I方法 I('变量类型.变量名/修饰符',['默认值'],['过滤方法'],['额外数据源']) 变量类型含义get获取GET参数post获取POST参数param自动判断请求类型获取GET、POST或者PUT参数request获取REQUEST 参数put获取PUT 参数session获取 $_SESSION 参数cookie获取 $_COOKIE 参数server获取 $_SERVER 参数globals获取 $GLOBALS参数path获取 PATHINFO模式的URL参数(3.2.2新增)data获取 其他类型的参数,需要配合额外数据源参数(3.2.2新增)获取复制echo I('get.id'); // 相当于 $_GET['id'] echo I('get.name'); // 相当于 $_GET['name'] 支持默认值 echo I('get.id',0); // 如果不存在$_GET['id'] 则返回0 echo I('get.name',''); // 如果不存在$_GET['name'] 则返回空字符串 整个数组 // 获取整个$_GET 数组 I('get.'); 方法过滤复制// 采用htmlspecialchars方法对$_GET['name'] 进行过滤,如果不存在则返回空字符串 echo I('get.name','','htmlspecialchars'); 过滤 三元运算复制I('post.email','','email'); 支持类型: 复制int boolean float validate_regexp validate_url validate_email validate_ip string stripped encoded special_chars unsafe_raw email url number_int number_float magic_quotes callback 正则过滤复制I('get.name','','/^[A-Za-z]+$/'); I('get.id',0,'/^\d+$/'); 变量修饰符复制I('get.id/d'); I('post.name/s'); I('post.ids/a'); 修饰符作用s强制转换为字符串类型d强制转换为整形类型b强制转换为布尔类型a强制转换为数组类型f强制转换为浮点类型请求类型常量说明IS_GET判断是否是GET方式提交IS_POST判断是否是POST方式提交IS_PUT判断是否是PUT方式提交IS_DELETE判断是否是DELETE方式提交IS_AJAX判断是否是AJAX提交REQUEST_METHOD当前提交类型空操作(空方法) 系统找不到请求的方法时,会调用此方法 _empty() 复制public function _empty(){ echo "没有此方法"; } 空控制器 系统请求不到控制器时,自动调用EmptyController 复制新建控制器 EmptyController.class.php 插件控制器操作绑定到类
2017-02-03Adobe CC 2017 正式版(WIN版本+MAC版本)Adobe Creative Cloud 2017 软件于2016 年11月2日 更新上市。 Adobe Creative Cloud 2017 为多国语言版本:中文,英文,韩文,日本等多国语言, 在
2018-05-27获取上一级页面的url参考地址:http://www.qdxw.net/xwhtml/384.html 实战代码 从4.php 点击进入5.php 1.上一页地址: http://localhost/box/4.php 2
2018-02-27tp5controller与model使用数据库控制器里使用数据库 use think\Db; $info = Db::table('fly_user')->select();//用些前缀,全部查询 $info = Db::table('fly_u