在浏览器中输入tp框架入口文件的地址,如图

要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟的就是tp

打上目录后回车,就会出来tp的主页面,如图

再随便打上一个没有的操作方法,如

打出的这个页面,暴露了很多信息,不太安全,所以我们要控制住,。

像这种操作本来没有的,叫做空操作

要改变这种,我们可以提供一种方法

从这个目录下找

可以在这个文件中查找双下划线打头的call方法

在这个位置搜到了call方法

当我们进行空操作的时候,它会走这个方法里面的else

我们要解决空操作,有两种方法,要么让它走上面的if,要么走上面的elseif

先来看elseif

我们可以给这种方法做一个模板

像这个test,没有的话,我们就要做一个test模板

在这个路径下新建一个test.html

在test文件里面就可以写html代码了

保存后刷新一下浏览器

这样就能输出一句话了

可能控制住空操作,但这种方式不好

如果用户不写test了,写个别的,依然还是不行

只有在输入test才可以

所以这种方式是不太现实的

那我们再来看另一种方式

这个需要我们在自己的控制器里再加一个方法

控制器的目录在上篇博客中有

保存后刷新一下页面

再随便输一个

再改一个

加上这个方法之后,用户输入任何不存在的,都会输出这句话

这样就把空操作给控制住了

到时候做网页的时候,可以把这个页面做的好看一点

除了这个操作方法之外,还有一个

有可能控制器也会写错

下面我们就来做一下怎么控制空控制器

在控制器这里新建一个文件

里面写上内容

然后运行一下

再重新随便改个控制器

这样就把空控制器给控制好了

来总结一下这两种情况

空操作的话,就在控制器里面加_empty方法

空控制器的话,就在controller里面新建一个控制器,控制器里面,一样要写_empty方法

如果在控制器里要访问其他方法

在控制器里先写两个方法

怎么样在test里面访问ceshi方法

在test里面写这样一句代码

刷新一下页面,试试能不能调出来

运行成功

再来看一下跨控制器怎么来调用

新建一个控制器

在里面添加内容,然后输出一句话

还是用Login控制器的内容,test调用mtest的内容

然后运行一下页面,看看能不能调取成功

运行成功

跨控制器访问,我们可以通过A方法,造Main控制器,然后直接调用它里面的内容就可以了

除了这种方式,还有一种方式

造一个新的Main控制器,然后调用里面的内容,运行一下

运行成功

所以跨控制器访问有两种方式

一种是new 一个控制器,另一种是用A方法

再来看一下跨模块控制器访问能不能行

找到Shop目录下的另一个模块

然后在Home里面新建一个控制器

然后在里面输上内容

下面再来写Login控制器的内容,还是让test页面来显示

还是使用A方法,多加了一个Home模块,这里的斜杠,用的是路径的斜杠

来运行一下看看行不行

运行成功,说明跨模块访问,也可以用A方法,在跨控制器的基础上多加一个模块名就可以,如果加模块名的话就是该模块下的控制器,如果不加模块名的话,就是当前模块的控制器

当然跨模块访问也可以使用new,来看一下怎么写

这个使用的是命名空间的知识下一篇博客里会讲

来运行一下看看行不行

运行成功

反斜杠的意思就是初始命名空间的意思

除了这两种方法还有一种

R方法

这样写就可以把Main控制器下的mtest调出来了

如果要调别的模块的话,可以这样写

运行一下

运行成功

A方法是造对象

R方法是调用方法

TP框架控制器的空操作的更多相关文章

  1. TP框架 ---空控制器和空操作

    通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...

  2. TP框架基础 (二) ---空控制器和空操作

    通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...

  3. thinkphp的空控制器和空操作以及对应解决方法

    在上篇随笔中我们已经知道了tp框架的四种访问方式,那么当在地址栏输入不存在的操作方法.控制器会怎么样呢? 先看一下定义: 空操作:一个对象(控制器)调用本身不存在的方法 空控制器:在实例化控制器对象的 ...

  4. 【tp5】tp5实现空模块、空控制器、空操作的页面404跳转

    写在最开始:本教程适用于tp5路由的[强制模式+半pathinfo模式+pathinfo模式],通用. 比网上的[通过路由去控制空模块更强力.更全面]. PS:路由控制空模块缺点:仅仅在[强制模式下才 ...

  5. thinkphp5空控制器和空操作

    thinkphp5空控制器和空操作 一.总结 1.空控制器和空操作用:空控制器和空操作都是为了防止网站上的用户恶意输入,网站上线的话必须加上, 2.空操作:空操作就是在一般的控制器里面加上一个 _em ...

  6. TP3.2框架,实现空模块、空控制器、空操作的页面404替换||同步实现apache报错404页面替换

    一,前言 一.1)以下代码是在TP3.0版本之后,URL的默认模式=>PATHINFO的前提下进行的.(通俗点,URL中index.php必须存在且正确) 代码和讲解如下: 1.空模块解决:ht ...

  7. TP框架控制器和对应方法创建

    控制器和对应方法创建 控制器是MVC模式中的核心,TP默认有一个控制器:   Index控制器里面有一个操作方法:Index   我们在访问http://localhost:8080/Thinkphp ...

  8. TP框架对数据库的操作

    1.添加数据       1.1添加一条数据 $user = new User; $user->name = 'thinkphp'; $user->email = 'thinkphp@qq ...

  9. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

随机推荐

  1. java中volatile关键字的含义<转>

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...

  2. ES6 学习笔记 (2)-- Liunx环境安装Node.js 与 搭建 Node.js 开发环境

    笔记参考来源:廖雪峰老师的javascript全栈教程 一.安装Node.js 目前Node.js的最新版本是6.2.x.首先,从Node.js官网下载对应平台的安装程序. 1.下载 选择对应的Liu ...

  3. DataTable使用技巧:DataRowState

    DataGridView:获取 DataRow 对象的状态,共有5个枚举值. Added 该行已添加到 DataRowCollection 中,AcceptChanges 尚未调用. Deleted ...

  4. laravel 5.1 性能优化对比 - 框架提供的方法

    写了一个项目发现性能不如人意. 于是便测试下, 看下性能瓶颈在什么地方. 使用 ab -n 20 http://www.lartest.com/ 软件环境: OS : windows 8.1 CPU: ...

  5. 彻底解决java WEB项目的文件路径问题(war包)

    在j2EE项目中,我们通常会把项目打包公布,通常是war包,作为独立单元,能够远程上传,载入,公布,还能够实现版本号控制,但这与我们开发过程中使用MyEclipse自己主动部署有所不同,下面做具体说明 ...

  6. css 3 制作水波状进度条

    效果图如下 : 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  7. 【转】如何搭建IPv6测试你的APP

    IPv6的简介 IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(更多详细信息自行搜索). PS:在使用 IPv6 的热点时候,记得手机开 飞行模式 哦 ...

  8. Apache HttpComponents 学习

    基本上,用户常用的就是HttpClient:它基于Http Core部分,但 Core部分太过于 low level,不建议使用,除非有特殊需要. Apache HttpComponentsTM 项目 ...

  9. Can't connect to MySQL server on '192.168.7.175' (10060)

    原因: 1.你的ip没有被授权,无法访问. 2.端口没有打开(如:3306端口没有打开). 解决方法: 授权(http://www.cnblogs.com/SZxiaochun/p/6401424.h ...

  10. Stream(流)的基本操作

    //把流转化为文件  public static void StreamToFile(Stream stream, string filepath)        {            byte[ ...