上QQ阅读APP看书,第一时间看更新
4.9 HTTP请求方法
很多情况下,需要判断当前HTTP请求方法是否为GET、POST、PUT或DELETE,以此对同一个URL地址针对不同的请求方法来实现不同的响应。ThinkPHP内置了一些常量用来判断请求方法,如表4-1所示。
表4-1
编辑Application/Home/Controller/IndexController.class.php方法,代码如下:
<? php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index() { $this->redirect('login', 'role=admin', 3, ’请登录’); } public function bind($id = 1) { echo U('Blog/view', array('id' => 1), 'shtml'); } public function login() { if (IS_POST) { echo ’当前为POST请求方法,需要处理登录逻辑’; } else if (IS_GET) { echo ’当前为空GET请求方法,需要显示登录页面’; } else { echo ’非法请求’; } } }
打开浏览器访问http://localhost/chapter-4/Home/Index/login,输出“当前为空GET请求方法,需要显示登录页面”。
如何测试POST请求呢?这里使用表单来进行处理,在chapter-4的根目录下新建post.html,代码如下:
<! DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Post</title> </head> <body> <form action="http://localhost/thinkphp-inaction/chapter-4/Home/Index/login" method="post"> <button>提交</button> </form> </body> </html>
打开浏览器访问http://localhost/chapter-4/post.html,点击“提交”按钮,输出“当前为POST请求方法,需要处理登录逻辑”,如此便实现了“相同URL根据不同请求方法实现不同响应”的功能。