
- 1. Thinkphp路径解析方式
- 1.1 path_info
- 1.2 路由解析
- 2. thinkphp中的各种函数
- 2.1 assign
- 2.2 fetch
- 参考文章
分为三种:
-
只有Path_info
-
Path_info+路由解析
-
只有路由解析
关闭路由的话就会使用默认的path_info来解析路径,举例如下
http://tp5.com/index/index/hello
上述url最终访问的就是服务器上index模块中index控制器的hello方法。格式一定是只有三部分的,也就是模块/控制器/控制器中的函数。
index控制器对应的是applicationindexcontrollerIndex这个类,hello对应这个index类中的hello方法。index模块就代表applicationindex这个路径。默认情况下我们只能主动访问应用类库的控制器,也就是index模块中的控制器。
appindexcontrollerIndex类其实就是对应着applicationindexcontrollerIndex这个index类,可以理解成app就是application的缩写。think就是thinkphp/library/think的缩写,以此类推。
1.2 路由解析路由就是将用户的请求按照事先规划的方案提交给指定的控制器和函数来进行处理。
路由需要在文件中提前配置,举例如下,下面的代码是动态注册路由:
thinkRoute::register('new/:id','index/New/read');
此时访问http://127.0.0.1/new/4就是访问http://127.0.0.1/index/New/read/4
可以在register方法中指定请求类型,不指定的话默认为任何请求类型,不指定后就只能通过指定的请求类型来传递数据,例如下面配置就只能通过post方法传递数据:
thinkRoute::register('new/:id','New/update','POST');
系统提供了为不同的请求类型定义路由规则的简化方法,例如:
thinkRoute::get('new/:id','New/read'); // 定义GET请求路由规则
thinkRoute::post('new/:id','New/update'); // 定义POST请求路由规则
thinkRoute::put('new/:id','New/update'); // 定义PUT请求路由规则
thinkRoute::delete('new/:id','New/delete'); // 定义DELETE请求路由规则
thinkRoute::any('new/:id','New/read'); // 所有请求都支持的路由规则
2. thinkphp中的各种函数
2.1 assign
是thinkController类下的一个函数,think是thinkphp/library/think路径,具体就是thinkphp/library/think/Controller.php文件。assign函数作用是给模版文件中的变量赋值,例如assign(‘name’,‘123’);就是将123赋值给view中的某个模版文件中的名为name的变量。
模版文件存储在application文件夹中的view文件夹下。
assign函数后面的参数也可以是数组,假设数组$a=[“tom”=>“12”];assign($a);就是将模版文件中的tom变量的值赋为12.
2.2 fetch确定assign赋值给哪个模版文件。例如fetch(‘view/index/hello.html’);
如果fetch后面的参数为空的时候,就会按照系统默认的规则(视图目录/控制器/ *** 作方法)输出了模板文件。假设是在index控制器中的get方法中执行了fetch函数,那么就会寻找view/index/get.html这个模版文件。
参考文章thinkphp5控制器从入门到精通
thinkphp5快速入门
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)