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动态注册路由的更多相关文章

  1. 修改route.php文件对ThinkPHP快速注册路由

    THINKPHP快速注册路由方式可以用 return[ "test"=>"index/index/demo", 'getid/:id'=>'inde ...

  2. vue 动态注册路由 require.context

    需求场景: 在日常的功能练习和调试过程中,需要一个demo项目进行功能测试,由于频繁.vue页面的同时,又要再router.js文件里面注册路由,感觉有点无聊和枯燥.基于此出发点,考虑能否自动读取文件 ...

  3. Vue动态注册异步组件(非同一个工程的组件)

    前言:最近在掘金逛的时候,无意中看到前滴滴前端架构黄轶大佬,看到了大佬分享的一篇博客滴滴 webapp 5.0 Vue 2.0 重构经验分享 ,对于其中第5个问题(异步加载的业务线组件,如何动态注册? ...

  4. RPC原来就是Socket——RPC框架到dubbo的服务动态注册,服务路由,负载均衡演化

    序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果.服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用.然我们自己动手从0开始写一个rpc功能以及实 ...

  5. thinkphp最简单路由

    thinkphp最简单路由 一.总结 1.路由应用场景(前台要,后台不要):前台所有人都可以看,所以前台的话设置路由,后台的话并不是所有人都进去,所以不需要设置路由 2.模块分离来实现路由场景应用:前 ...

  6. 自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构

    这一切的一切都得从“Hello world”说起!!! 有很多东西在thinkPHP的官方开发文档上其实都有讲到,我在这里只是想记录自己每天坚持学习PHP的情况,今天接触ThinkPHP的路由,路由这 ...

  7. YbSoftwareFactory 代码生成插件【二十四】:MVC中实现动态自定义路由

    上一篇介绍了 公文流转系统 的实现,本篇介绍下MVC下动态自定义路由的实现. 在典型的CMS系统中,通常需要为某个栏目指定个友链地址,通过指定友链地址,该栏目的地址更人性化.方便记忆,也有利用于搜索引 ...

  8. 在 node.js 的 express web 框架中自动注册路由

    该方法主要是动态注册自己写的 router . 注册器 router 文件名为 loader.js  . var express = require('express'); var fs = requ ...

  9. ThinkPHP - URL - 伪静态 - 路由 - 重写

    URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 ...

随机推荐

  1. SQL Server 多种分页查询效率

    关于SQL语句分页,网上也有很多,我贴一部分过来,并且总结自己已知的分页到下面,方便日后查阅. 方法1 适用于 SQL Server 任何版本 SELECT TOP 页大小 * FROM table1 ...

  2. Zabbix监控平台部署

    系统环境 Server端:192.168.149.128 Agent端:192.168.149.129 一.lamp环境安装 1.yum安装lamp yum install -y http http- ...

  3. 推荐《深入浅出深度学习原理剖析与python实践》PDF+代码

    <深入浅出深度学习原理剖析与Python实践>介绍了深度学习相关的原理与应用,全书共分为三大部分,第一部分主要回顾了深度学习的发展历史,以及Theano的使用:第二部分详细讲解了与深度学习 ...

  4. U-BOOT启动流程分析--start.s(二)

    一.概述 u-boot的启动流程: 从文件层面上看主要流程是在两个文件中:cpu/arm920t/start.s,lib_arm/board.c, 先来分析start.s    在flash中执行的引 ...

  5. Centos6.5 安装lnmp环境

    最近项目要配置在nginx上,所以搜索了下具体nginx的安装,看到这篇文章简洁明了而且测试成功就借用了,作品出处:http://www.cnblogs.com/xiaoit/p/3991037.ht ...

  6. Windows Server 2016 辅助域控制器搭建

    Windows Server 2016 主域控制器搭建完成后,继续进行辅助域控制器搭建.1.更改服务器的IP地址2.修改服务器的名称3.打开服务器管理器,选择添加角色和功能4.选择,下一步5.选择,下 ...

  7. Android性能优化之提高ListView性能的技巧

    ListView优化一直是一个老生常谈的问题.无论是面试还是寻常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看怎样最大化的优化ListView的性能. 1.在adapter中的ge ...

  8. [Python] Python Libs

    The Python Standard Library has a lot of modules! To help you get familiar with what's available, he ...

  9. Alcatraz:管理Xcode插件

    简单介绍 Alcatraz是一个帮你管理Xcode插件.模版以及颜色配置的工具. 它能够直接集成到Xcode的图形界面中,让你感觉就像在使用Xcode自带的功能一样. 安装和删除 使用例如以下的命令行 ...

  10. js插件---10个免费开源的JS音乐播放器插件

    js插件---10个免费开源的JS音乐播放器插件 一.总结 一句话总结:各种插件都有很多,多去找. 二.js插件---10个免费开源的JS音乐播放器插件 亲测可用 音乐播放器在网页设计中有时候会用到, ...