TP5 路由相关信息摘记

xiaoxiao2021-02-28  104

TP5 路由定义

路由注册

rule方法注册

Route::rule('路由表达式','路由地址','请求类新','路由参数(数组)','变量规则(数组)');

例子:

Route::rule('new/:id','index/News/read','get');

对应到下面的:

new/:id 路由表达式index/News/read 路由地址get 请求类型

当你访问:http://serverName/new/5时就会自动访问PathInfo模式下的http://serverName/index/News/read/5,这里的5是参数,下面再介绍具体的参数传入方式。

get/post 简化写法

Route::get('new/:id','News/read'); Route::post('new','News/add');

可选参数

上面是使用:ParameterName的形式,表示路由地址中一定要带有该参数,否则不能匹配到路由设置,但是也可以使用[:ParameterName]——加方括号的形式,使用该形式后即使没有传入参数,也会匹配到该路由。

返回数组形式

return [ 'new/:id'=>'News/read', 'news'=>['Newa/add',['method'=>'post']] ];

路由参数

参数名称说明method请求类型extURL后缀deny_ext被禁止的后缀https检测是否是https请求domain域名检测before_behavior前置行为检测after_behavior后置行为callback回调函数merge_extra_vars合并额外参数bind_model绑定模型cache请求缓存param_depr路由参数分隔符ajaxAjax检测pjaxPjax检测

- 前置/后置行为检测

Route::get( 'user/:id', 'index/User/read', ['before_behavior'=>'\app\index\behavior\UserCheck'] );

其中的\app\index\behavior\UserCheck表示一个具体的类,其中的方法是掐死的——run()

namespace app\index\behavior; class UserCheck { public function run() { if('user/0'==request()->url()){ return false; } } }

变量规则

设置方式

'参数名称'=>'正则表达式'

支持数组形式的多参数验证

全局设置

Route::pattern('参数名称','正则表达式');

路由可设置内容

定义方式定义格式模块/控制器模块/控制器/操作?额外参数=值&额外参数=值重定向地址外部地址控制器的方法@模块/控制器/方法类的方法\完整的命名空间::静态方法 或者 \完整的命名空间@动态方法闭包函数闭包函数

快捷路由设置

return [ '__rest__'=>[ '路由地址'=>'模块/控制器' ] ];

其中各种类型的请求以及对应的方法如下:

请求类型路由规则对应操作方法主要工作GET路由地址index获取管理页面GET路由地址/createcreate获取新建页面POST路由地址save保存新建页面提交数据GET路由地址/:参数read获取该参数下的信息GET路由地址/:参数/editedit获取该参数下信息的修改页面PUT路由地址/:参数update保存修改页面提交过来的数据DELETE路由地址/:参数delete删除信息

快捷设置时设置多个参数

// 路由地址1和路由地址2之间使用.进行分割 Route::resource('路由地址1.路由地址2'.'模块名/控制器名');

接着就是路由可以这样设置:

http://serverName/路由地址1/参数1/路由地址2/参数2

接着在控制器中,就可以这样获取这两个参数:

public function index(参数1,参数2){}

路由分组

Route::group( '路由公共前缀', [ ['路由后缀1'=>['控制器设置']], ['路由后缀2'=>['控制器设置']] ] );

默认路由

return [ '__mission__'=>['控制器设置'] ];

或者使用

Route::miss('控制器设置');
转载请注明原文地址: https://www.6miu.com/read-59489.html

最新回复(0)