Tp框架 之对控制器的一些操作等
在浏览器中输入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框架 之对控制器的一些操作等的更多相关文章
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- tp框架之对列表的一系列操作及跳转页面(详细步骤)
依旧是在Main控制器里面写类方法,如果想看tp全部的话,可以从前几篇开始看,都是一整个步骤下来的 在控制器中重新写个类 然后再做个shouye.html页面 nation表的数据,将会在shou.h ...
- TP框架部分---空控制器
<?php namespace Admin\Controller; use Think\Controller; class DengLuController extends Controller ...
- 用tp框架来对数据库进行增删改
先来看添加 使用tp框架,对数据库进行添加操作,都有哪些方法 先在Main控制器中,做个方法 运行一下,注意地址,就要输tianjia了 然后再看一下数据库,有没有添加上数据 添加成功 再来看一下这个 ...
- TP框架如何绑定参数。目的进行ajax验证
TP框架的自动绑定 对于某些操作的情况(例如模型的写入和更新方法),可以支持参数的自动绑定,例如: 首先需要开启DB_BIND_PARAM配置参数: 'DB_BIND_PARAM' => tru ...
- TP框架 ---空控制器和空操作
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...
- TP框架控制器的空操作
在浏览器中输入tp框架入口文件的地址,如图 要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟 ...
- TP框架基础 (二) ---空控制器和空操作
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...
- TP3.2框架,实现空模块、空控制器、空操作的页面404替换||同步实现apache报错404页面替换
一,前言 一.1)以下代码是在TP3.0版本之后,URL的默认模式=>PATHINFO的前提下进行的.(通俗点,URL中index.php必须存在且正确) 代码和讲解如下: 1.空模块解决:ht ...
随机推荐
- MySQL密码丢失,解决方法
我的MySQ安装路径是:D:\Program Files\MySQL 1.所以先cmd下切入盘 输入-> D: 输入->cd "D:\Program Files\MySQL\My ...
- Chrome中java因过期而遭到阻止
http://www.cnblogs.com/jifeng/p/3453322.html 在Chrome快捷方式图标上右击,选[属性],然后在[目标]一栏的末尾添加这么一段命令(flag): --al ...
- promise/bluebird源码
本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/bluebirdsource 本博客同步在http://www.cnb ...
- 关于多字节字符入库失败处理(所谓的Emji),该处理是舍弃特殊字符
具体处理方法及样例如下: /** * 屏蔽超过三个字节以上的字符 * @param strByte * @return */ public static String filterUtf8(byte[ ...
- Ubuntu16.04安装GTK3主题:OSX-Arc
Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...
- 字符集编码与Python(二)Unicode与utf-8
Python中的Unicode和utf-8 上一篇提过了字符集的历史其中简单的讲解了Unicode与utf-8的关系,简单的总结一下: utf-8和utf-16 .utf-32是一类,实现的功能是 ...
- Dubbo源码学习文章目录
目录 Dubbo源码学习--服务是如何发布的 Dubbo源码学习--服务是如何引用的 Dubbo源码学习--注册中心分析 Dubbo源码学习--集群负载均衡算法的实现
- Xcode自带iOS测试方法
在说Xcode自带测试方法前先讲下程序在内存中的空间划分, 一般可分为5个部分: #1. BSS段, 存放未初始化的全局变量. BSS是英文Block Started by Symbol的简称.BSS ...
- 服务器部署项目出现问题:Unsupported major.minor version 52.0
问题描述: 编写一个web 前置服务,使用ant编译项目,将项目部署到服务器上,启动时报此错误:Unsupported major.minor version 52.0 网上给出错误原因是服务器安装的 ...
- C++ 头文件系列 (algorithm)
简介 algorithm头文件是C++的标准算法库,它主要应用在容器上. 因为所有的算法都是通过迭代器进行操作的,所以算法的运算实际上是和具体的数据结构相分离的 ,也就是说,具有低耦合性. 因此,任何 ...