Blogger Information
Blog 4
fans 0
comment 1
visits 4399
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
ThinkPHP5.1新手笔记(二):【基础知识】请求和响应
一嗔
Original
327 people have browsed it

        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),参数说明:准备下载的文件,准备保存的名字,直接下载。支持图片下载和文本下载。


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post