当前位置:   article > 正文

TP5 路由相关信息摘记_tp5 route::miss

tp5 route::miss

TP5 路由定义

路由注册

rule方法注册

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

例子:

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

对应到下面的:

  • 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');
  • 1
  • 2

可选参数

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

返回数组形式

return [
    'new/:id'=>'News/read',
    'news'=>['Newa/add',['method'=>'post']]
];
  • 1
  • 2
  • 3
  • 4

路由参数

参数名称说明
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']
);
  • 1
  • 2
  • 3
  • 4
  • 5

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

namespace app\index\behavior;

class UserCheck
{
    public function run()
    {
        if('user/0'==request()->url()){
            return false;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

变量规则

设置方式

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

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

全局设置

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

路由可设置内容

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

快捷路由设置

return [
    '__rest__'=>[
        '路由地址'=>'模块/控制器'
    ]
];
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

快捷设置时设置多个参数

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

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

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

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

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

路由分组

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

默认路由

return [
    '__mission__'=>['控制器设置']
];
  • 1
  • 2
  • 3

或者使用

Route::miss('控制器设置');
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/351306
推荐阅读