1、tp有4、5种方法获取Request对象。个人只喜欢facade模式,Request::param( )。
2、获取输入变量:param是tp推荐的获取输入变量的方法,统一了get、post等各种请求方法,能应付绝大多数情况,特殊情况再说。获取输入变量的时候,可以支持默认值,例如当URL中不包含 $_GET['name'] 的时候,使用下面的方式输出Request::get('name','default'); // 返回值为default。Request::has('id','get')可以判断是否设置了id值,自己一般用助手函数input('?get.id')。只获取当前请求的id和name变量Request::only('id,name')。变量修饰符Request::get('id/d')可以强制转换类型。
3、获取固定信息:除了param用来获取输入变量,还有一些方法用于获取请求固定信息,如host、domain、url、root、path等。
4、获取请求类型:isAjax。在很多情况下面,我们需要判断当前操作的请求类型是 GET 、 POST 、 PUT 、 DELETE 或者 HEAD,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求。tp5.1提示:没有必要在控制器中判断请求类型再来执行不同的逻辑,完全可以在路由中进行设置。
5、伪静态。URL伪静态通常是为了满足更好的SEO效果,ThinkPHP支持伪静态URL设置,可以通过设置url_html_suffix 参数随意在URL的最后增加你想要的静态后缀(这就算设置了伪静态,如果设个false,就是关闭了伪静态),而不会影响当前操作的正常执行。例如,设置'url_html_suffix' => 'shtml'的话(默认是html),我们可以把下面的URLhttp://serverName/Home/Blog/read/id/1变成http://serverName/Home/Blog/read/id/1.shtml,后者更具有静态页面的URL特征,但是具有和前面的URL相同的执行效果,并且不会影响原来参数的使用。url方法可以获取当前访问路径的伪静态URL。
6、响应( Response )对象用于动态响应客户端请求,控制发送给用户的信息。通常用于输出数据给客户端或者浏览器。ThinkPHP5.1 的Response 响应对象由 think\Response 类或者子类完成,ThinkPHP的响应输出是自动的(命令行模式除外),最终会调用 Response 对象的 send 方法完成输出。大多数情况,我们不需要关注 Response 对象本身,只需要在控制器的操作方法中返回数据即可。之前一直在用的return,json,view,这些的背后是Response对象,但普通输出不需要管这个对象。当想给出一些状态码或者其它信息时,就需要return response($data,201)。
7、重定向。return redirect('index/Index/index') 。
8、文件下载。本质上是有个类来完成文件下载的,但从tp6开始已经全部用助手函数了,所以这里也选择用助手函数。return download($data,'test.txt',true),参数说明:准备下载的文件,准备保存的名字,直接下载。支持图片下载和文本下载。