thinkphp动态注册路由
thinkphp动态注册路由
一、总结
1、thinkphp使用路由步骤:a、config配置文件中开启路由 b、Route类的rule方法创建路由(在Routephp中)Route::rule('/','index/index/index');
2、带参数的路由:引号+参数:Route::rule('course/:id','index/index/course'); 引号+参数
3、可选参数路由:中括号,和别而通式中的可选一样:Route::rule('time/:year/[:month]','index/index/shijian');
4、带额外参数路由:默认自带参数,Route::rule('test2','Index/index/test2?id=10&name=zhangsan');
5、rule的第三个参数:是路由支持的请求类型,例如get、post等,默认支持所有
二、thinkphp动态注册路由
设置路由-动态单个注册
0、设置路由格式
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)')
1、设置路由文件
C:\AppServ\www\tp5\application\route.php
2、如何设置
// 引入系统类
use think\Route;
// 定义路由规则
// 设置路由之后,就不能使用pathinfo访问了
// 注册路由 访问到Index模块index控制器index方法
Route::rule('/','index/index/index');
// 注册路由test 访问到Index模块index控制器test方法
Route::rule('test','index/index/test');
3、路由的形式
1、静态地址路由
// 注册路由test 访问到Index模块index控制器test方法
Route::rule('test','index/index/test');
2、路由带参数
// 注册带参数路由
// http://www.tp.com/couser/1
// http://www.tp.com/index/index/index/id/1
Route::rule('course/:id','index/index/course');
// 如果路由设置两个参数,必须带两个参数
Route::rule('time/:year/:month','index/index/shijian');
3、可选参数路由
// http://www.tp.com/time/2017
// http://www.tp.com/time/2017/8
Route::rule('time/:year/[:month]','index/index/shijian');
4、全动态路由(不建议大家使用)
Route::rule(':a/:b','index/index/dongtai');
5、完全匹配路由
// http://www.tp.com/test1 #可以成功访问
// http://www.tp.com/test1/1 #不能访问
Route::rule('test1$','Index/index/test1');
6、路由额外带参数
Route::rule('test2','Index/index/test2?id=10&name=zhangsan');
4、设置请求类型
1、TP中请求类型
get、post、put、delete
2、Route::rule() 默认支持所有请求类型
3、设置各种请求
// 支持get请求
Route::rule('type','Index/index/type','get');
// Route::get('type','Index/index/type');
// 支持post请求
// Route::rule('type','Index/index/type','post');
// Route::post('type','Index/index/type');
// 同时支持get和post
// Route::rule('type','Index/index/type','get|post');
// 支持所有路由
// Route::rule('type','Index/index/type','*');
// Route::any('type','Index/index/type');
// 支持put请求
Route::rule('type','Index/index/type','put');
Route::put('type','Index/index/type');
// 支持delete请求
Route::rule('type','Index/index/type','delete');
Route::delete('type','Index/index/type');
4、如何模拟put和delete请求
<form action="type" method="post">**
<p>
<input type="hidden" name="_method" value="PUT">**
<input type="text" name="name" id="">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
thinkphp动态注册路由的更多相关文章
- 修改route.php文件对ThinkPHP快速注册路由
THINKPHP快速注册路由方式可以用 return[ "test"=>"index/index/demo", 'getid/:id'=>'inde ...
- vue 动态注册路由 require.context
需求场景: 在日常的功能练习和调试过程中,需要一个demo项目进行功能测试,由于频繁.vue页面的同时,又要再router.js文件里面注册路由,感觉有点无聊和枯燥.基于此出发点,考虑能否自动读取文件 ...
- Vue动态注册异步组件(非同一个工程的组件)
前言:最近在掘金逛的时候,无意中看到前滴滴前端架构黄轶大佬,看到了大佬分享的一篇博客滴滴 webapp 5.0 Vue 2.0 重构经验分享 ,对于其中第5个问题(异步加载的业务线组件,如何动态注册? ...
- RPC原来就是Socket——RPC框架到dubbo的服务动态注册,服务路由,负载均衡演化
序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果.服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用.然我们自己动手从0开始写一个rpc功能以及实 ...
- thinkphp最简单路由
thinkphp最简单路由 一.总结 1.路由应用场景(前台要,后台不要):前台所有人都可以看,所以前台的话设置路由,后台的话并不是所有人都进去,所以不需要设置路由 2.模块分离来实现路由场景应用:前 ...
- 自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构
这一切的一切都得从“Hello world”说起!!! 有很多东西在thinkPHP的官方开发文档上其实都有讲到,我在这里只是想记录自己每天坚持学习PHP的情况,今天接触ThinkPHP的路由,路由这 ...
- YbSoftwareFactory 代码生成插件【二十四】:MVC中实现动态自定义路由
上一篇介绍了 公文流转系统 的实现,本篇介绍下MVC下动态自定义路由的实现. 在典型的CMS系统中,通常需要为某个栏目指定个友链地址,通过指定友链地址,该栏目的地址更人性化.方便记忆,也有利用于搜索引 ...
- 在 node.js 的 express web 框架中自动注册路由
该方法主要是动态注册自己写的 router . 注册器 router 文件名为 loader.js . var express = require('express'); var fs = requ ...
- ThinkPHP - URL - 伪静态 - 路由 - 重写
URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 ...
随机推荐
- Spring MVC 入门
1.准备开发环境和运行环境: ☆开发工具:eclipse ☆运行环境:tomcat6.0.20 ☆工程:动态web工程(springmvc-chapter2) ☆spring框架下载: spring- ...
- php 扩展
如何利用PHP扩展函数,扩展出自己的函数等 php扩展函数有哪些zend_parse_parameters() spprintf() RETURN_STRINGL()
- easyUI表单验证
1.重写easyui中的 $.extend($.fn.validatebox.defaults.rules, { }) 2.长度重写的方式 1 $.extend($.fn.validatebox.de ...
- 学习《TensorFlow实战Google深度学习框架 (第2版) 》中文PDF和代码
TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用.<TensorFlow:实战Google深度学习框架(第2版)>为TensorFlow入门参考书,帮助快速. ...
- HDU——T 1506 Largest Rectangle in a Histogram|| POJ——T 2559 Largest Rectangle in a Histogram
http://acm.hdu.edu.cn/showproblem.php?pid=1506 || http://poj.org/problem?id=2559 Time Limit: 2000/1 ...
- ios in-house 公布整个过程(startssl认证)
首先大体说一下步骤: 1.申请苹果enterprise 账号 为应用生成app id,provision profile等 详见:http://www.th7.cn/Program/IOS/20131 ...
- actionMode-theme中修改actionmode中more下拉框的背景颜色
今天在做图库修改是,需要修改图库的actionbar某个按钮弹出来的下拉框的背景颜色,在网上找了个方法尝试下,没有打到自己的要求,不过阴差阳错的却修改了more下拉框的背景,再次记录下,也许以后能用的 ...
- vue绑定内联样式
v-bind:style 的对象语法十分直观--看着非常像 CSS ,其实它是一个 JavaScript 对象. CSS 属性名可以用驼峰式(camelCase)或短横分隔命名(kebab-case) ...
- Day2上午解题报告
预计分数:100+0+60=160 实际分数:100+0+60=160 mmpT1数据错了... T1遭遇 题目描述 你是能看到第一题的 friends呢. —— hja ?座楼房,立于城中 . 第? ...
- 跨域使用onmessage实现方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...