首页 » Web前端 » php路由表达式技巧_ThinkPHP5开拓连载86tp5连载路由之路由定义路由表达式

php路由表达式技巧_ThinkPHP5开拓连载86tp5连载路由之路由定义路由表达式

访客 2024-11-16 0

扫一扫用手机浏览

文章目录 [+]

①在Index掌握器中,新建archive方法:

②设置路由,静态地址与动态地址结合

php路由表达式技巧_ThinkPHP5开拓连载86tp5连载路由之路由定义路由表达式

预览:

php路由表达式技巧_ThinkPHP5开拓连载86tp5连载路由之路由定义路由表达式
(图片来自网络侵删)

把稳:

1. 规则表达式的定义以/为参数分割符(无论你的PATH_INFO分隔符设置是什么,请确保在定义路由规则表达式的时候统一利用/进行URL参数分割,除非是利用组合变量的情形)。

2. 每个参数中以 : 开头的参数都表示动态变量,并且会自动绑定到操作方法的对应参数。

3. 你的URL访问PATH_INFO分隔符利用pathinfo_depr配置,但无论如何配置,都不影响路由的规则表达式的路由分隔符定义

2.可选定义

支持对路由参数的可选定义。

修正Index掌握器下的archive方法的路由,有可选变量:

预览:

把稳:

1. 定义可选变量路由对应的方法,可选变量的参数要有默认值。

2. 可选变量在访问时,可传参也可不传参。

3. 采取可选变量定义后,之前须要定义两个或者多个路由规则才能处理的情形可以合并为一个路由规则。

4. 可选参数只能放到路由规则的末了,如果在中间利用了可选参数的话,后面的变量都会变成可选参数。

3. 完备匹配

规则匹配检测的时候默认只是对URL从头开始匹配,只要URL地址包含了定义的路由规则就会匹配成功,如果希望URL进行完备匹配,可以在路由表达式末了利用$符号。

①在Index掌握器中,新建news方法

②为news方法定义完备匹配的路由

预览:

把稳:

1. 采取完备匹配后:

http://serverName/tp5_1/public/news/12会被匹配成功

http://serverName/tp5_1/public/news/12/23不会被匹配成功。

如果路由定义不采取完备匹配:

Route::rule('news/:id','index/Index/news');

则两种办法的URL访问都可以匹配成功。

2. 如果须要全局进行URL完备匹配,可以在config/app.php中设置:

// 开启路由完备匹配

'route_complete_match' => true,

4. 额外参数

在路由跳转的时候支持额外传入参数对(额外参数指的是不在URL里面的参数,隐式传入须要的操作中,有时候能够起到一定的安全防护浸染,后面我们会提到)。
例如:

上面的路由规则定义中额外参数的传值办法都是等效的。
status和app_id参数都是URL里面不存在的,属于隐式传值,当然并不一定须要用到,只是在须要的时候可以利用。

①在Index掌握器中,新建otherFun方法:

②定义otherFun方法的路由,设置额外参数

预览:

5. 路由标识

如果你须要快速的根据路由天生URL地址,可以在定义路由的时候指定天生标识(但要确保唯一)。

①在Index掌握器中,新建flgFun方法:

②定义flgFun方法的路由,设置路由标识

预览:

③利用路由标识天生路由地址

修正Index掌握器下的flgFun方法,输出利用路由标识天生的路由地址:

预览:​

把稳:

1. 如果设置路由标识,可以利用路由标识天生路由地址:

url('index_flg',['id'=>10]);

如果不定义路由标识的话,利用下面的办法天生:

url('index/Index/flg',['id'=>10]);

2. URL的天生,可看后续章节“URL天生”。

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技能文章

下一篇讲解“路由 - 变量规则”

标签:

相关文章

php面向对象派生技巧_PHP 面向对象

在现实天下里我们所面对的事情都是工具,如打算机、电视机、自行车等。工具的紧张三个特性:工具的行为:可以对 工具施加那些操作,开灯,...

Web前端 2024-12-12 阅读0 评论0