ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应

ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应

第6章 TP5.0 请求和响应

=====================================

上次复习

1、新建控制器

2、如何加载页面

        

         1、系统函数

                   return view();

         2、系统view类

                   $view=new View();

                   return $view->fetch();

         3、通过Controller类

                   // 需要控制器继承系统类   

                   return $this->fetch();

3、页面跳转

         0、使用

                   必须继承系统控制器类

         1、成功

                   $this->success();

         2、失败

                   $this->error();

         3、重定向

                   $this->redirect();

4、空控制器和空方法

        

=====================================

今日学习

1、系统类(C:AppServwww p5 hinkphplibrary hink)

        

         Config

         Controller

         Env

         Route

         Url

         View

         Request

2、系统方法(C:AppServwww p5 hinkphphelper.php)

        

         dump();  格式化输出

         controller(); 调用控制器

         action(); 调用方法

         config(); 读取和设置配置文件

         url(); 生成URL地址

         view(); 加载页面

         request(); 实例化 Request类

3、如何获取请求类

         1、系统函数

             $request=request();

         2、系统Request类

                   use thinkRequest;

                   // 因为Request类属于单例模式 所以 不能直接new

             $request=Request::instance();

    3、系统Request类

                   use thinkRequest;

                   // 方法的书写

             public function index(Request $request)

             {

                       dump($request);

             }

4、获取用户请求信息

        

         1、获取域名

                   dump($request->domain());

         2、获取URL地址 除域名以外

                   dump($request->url());

         3、 获取入口文件

                   dump($request->baseFile());

         4、获取PathInfo路径

                   dump($request->pathinfo());

         5、获取PATHINFO路径 无后缀

                   dump($request->path());

         6、url地址伪静态后缀

                   dump($request->ext());

         7、伪静态

                   就是将路径伪装成静态页面,让搜索引擎更好收录网站,防止别人知道网站真实开发语言

5、获取请求模块控制器方法

        

         1、控制器

                   $request->controller();

         2、方法

                   $request->action();

         3、模块

                   $request->module();

6、获取请求相关类型

         1、请求类型

                   $request->method();

         2、请求资源类型

                   $request->type();

         3、访问地址

                   $request->ip();

         4、是否ajax请求

                   $request->isAjax();

         5、获取所有地址栏参数

                   $request->param();

         6、获取特定字段

                   $request->only(['name','id']);

         7、剔除字段

                   $request->except(['name','id']);

7、获取变量

         1、判断是否存在

                   dump($request->has('id','get'));

                   dump(input('?get.id'));

         2、读取变量

                   dump($request->get('id'));

                   dump(input('get.id'));

                   dump($request->get());

                   dump(input('get.'));

         3、可以读取数据类型

                   get、post、delete、put、session、cookie、server

                   $request->get();

                   $request->post();

                   $request->put();

                   $request->server();

                   $request->request();

                   $request->session();

                   $request->cookie();

8、变量的过滤

         1、作用 

                   防止恶意输入、防止sql注入

         2、使用

                   1、全部的数据进行过滤

                            // 单个方法过滤

                            $request->filter("htmlspecialchars");

                            // 多种方法过滤

                            $request->filter(["htmlspecialchars","strip_tags"]);

                   2、针对变量过滤

                       $request->get('name','','htmlspecialchars');

             3、密码过滤之后加密

                       dump($request->get('pass','','htmlspecialchars,md5'));

9、变量的排除和获取

         1、获取

                   $request->only('name');

                   $request->only('name',get);

                   $request->only(['name','pass'],get);

         2、排除

                   $request->except(['name','pass'],get);

                   $request->except(['name','pass']);

                   $request->except('name');

10、变量修饰符

        

         1、修饰变量的类型

                   s 字符串

                   d 整形

                   f 浮点型

                   a 数组

                   b 布尔型

         2、使用

                   dump(input('get.id/d')); // 强制转换整形

                   dump($request->get('id/d'));

11、更改变量

         // 地址栏访问 http://www.tp.com/index.php/Index/Index/xiugai?id=10

         dump($request->get('id'));  // 10

         dump($request->get(['id'=>20]));  //数组

         dump($request->get('id'));  // 20

12、请求类型判断

         1、系统类

                   // 判断是否是get请求

                   dump($request->isGet());

                   // 判断是否是手机端

                   dump($request->isMobile());

         2、系统函数

                   dump(request()->isGet());

                   dump(request()->isMobile());

13、模拟put、delete请求

         1、使用

                   <form action="{:url('type')}" method="post">

                            <p>

                                     User:

                                     <input type="text" name="name" id="">

                                     <input type="hidden" name="_method" value="PUT">

                            </p>

                            <p>

                                     Pass:

                                     <input type="password" name="pass" id="">

                            </p>

                            <p>

                                     <input type="submit" value="提交">

                            </p>

                   </form>

         2、注意

                   1、表单的请求类型必须是post

                   2、需要设置隐藏域传递模拟请求类型

14、模拟ajax请求和PJAX请求

         1、模拟ajax请求

                   http://www.tp.com/index.php/index/index/type?_ajax=10

         2、模拟pjax请求

                   http://www.tp.com/index.php/index/index/type?_pjax=10

15、伪静态

         1、作用

                   1) URL伪静态通常是为了满足更好的SEO效果

                   2) 为了网站的安全

         2、修改伪静态

                   在配置文件中进行修改

                   'url_html_suffix'        => 'shtml',

         3、获取当前的伪静态后缀

                   $request->ext();

16、参数绑定

         1、使用

                   public function banding($id,$name="admin"){

                       dump($id);

                       dump($name);

                   }

                   http://www.tp.com/index.php/index/index/banding/id/1/name/user

         2、注意

                   1、参数绑定的个数,少于地址栏参数的个数

                   2、参数绑定的名字,必须和地址栏参数名字一一对应

                   3、参数绑定可以设置默认值

                   

原文地址:https://www.cnblogs.com/Renyi-Fan/p/8596700.html