TP5 路由相关信息摘记

来源:互联网 发布:学c语言看什么书 编辑:程序博客网 时间:2024/05/23 17:30

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 请求类型 ext URL后缀 deny_ext 被禁止的后缀 https 检测是否是https请求 domain 域名检测 before_behavior 前置行为检测 after_behavior 后置行为 callback 回调函数 merge_extra_vars 合并额外参数 bind_model 绑定模型 cache 请求缓存 param_depr 路由参数分隔符 ajax Ajax检测 pjax Pjax检测

- 前置/后置行为检测

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 路由地址/create create 获取新建页面 POST 路由地址 save 保存新建页面提交数据 GET 路由地址/:参数 read 获取该参数下的信息 GET 路由地址/:参数/edit edit 获取该参数下信息的修改页面 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('控制器设置');
原创粉丝点击