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, 如果模块名为 ...
随机推荐
- 由安装两块网卡的linux系统中引起网络不通想到的
由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...
- 整个shuffle的流程图
整个shuffle的流程图 Paste_Image.png Map Shuffle的作用以及相应的设置 partition 过程:输入的<key,value>对经过map()处理后输出 ...
- Yeslab 华为安全HCIE-第七门-Agile Controlle
课程目录: 华为安全HCIE-第七门-Agile Controller(12篇)\1_aglie_controller产品亮点讲解.avi 华为安全HCIE-第七门-Agile Controlle ...
- 零基础学python-7.6 字符串格式化表达式
字符串格式化同意在一个单个的步骤中对一个字符串运行多个特定类型的替换 特别是给用户提示的时候,格式化很方便 实现方法: 1.格式化表达式,类似于c语音的printf 在表达式中,我们使用%二进制操作符 ...
- ORA-00922: 选项缺失或无效
1.错误描写叙述 SQL> create table info_stu from select t.stu_id,t.stu_name,t.stu_age from info t; create ...
- 51.cgi网站后门
运行截图: html开发: <html> <body> <form id="form" name="form" method=&q ...
- windows下go语言环境
1 liteIDE ,随便装哪儿都行 2 GO语言包 安装 ,我安装到了 c:\go (顺便给个地址下载地址 https://golang.org/dl/ ) 3 GCC编译器 安装,同 ...
- 搭建 Nginx 静态网站
示例代码:/etc/nginx/nginx.conf user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid / ...
- LeetCode 06 ZigZag Conversion
https://leetcode.com/problems/zigzag-conversion/ 水题纯考细心 题目:依照Z字形来把一个字符串写成矩阵,然后逐行输出矩阵. O(n)能够处理掉 记i为行 ...
- Oracle 11gR2光钎链路切换crs服务发生crash
Oracle 11gR2光钎链路切换crs服务发生crash 背景: 我们将Oracle 11gR2(11.2.0.4)在RedHat EnterPrise 5.8上通过RDAC完毕的多路径链路冗余. ...