php 各种路由分析_ThinkPHP5 路由定义及路由详解(三)

路由到操作方法

路由地址的格式为:@模块/控制器/操作

这种方式看起来似乎和第一种是一样的,本质的区别是直接执行某个控制器类的方法,而不需要去解析 模块/控制器/操作这些,同时也不会去初始化模块。

例如,定义如下路由后:'blog/:id'=>'@index/blog/read',

系统会直接执行Loader::action('index/blog/read');

相当于直接调用 \app\index\controller\blog类的read方法。

路由到类的方法

路由地址的格式为(动态方法):\类的命名空间\类名@方法名或者(静态方法)

\类的命名空间\类名::方法名

这种方式更进一步,可以支持执行任何类的方法,而不仅仅是执行控制器的操作方法,例如:'blog/:id'=>'\app\index\service\Blog@read',

执行的是 \app\index\service\Blog类的read方法。

也支持执行某个静态方法,例如:'blog/:id'=>'\app\index\service\Blog::read',

资源路由

ThinkPHP 5.0支持设置RESTFul请求的资源路由,方式如下:Route::resource('blog','index/blog');

或者在路由配置文件中使用__rest__添加资源路由定义:return [

// 定义资源路由

'__rest__'=>[

// 指向index模块的blog控制器

'blog'=>'index/blog',

],

// 定义普通路由

'hello/:id'=>'index/hello',

]

设置后会自动注册7个路由规则,如下:标识请求类型生成路由规则对应操作方法(默认)

indexGETblogindex

createGETblog/createcreate

savePOSTblogsave

readGETblog/:idread

editGETblog/:id/editedit

updatePUTblog/:idupdate

deleteDELETEblog/:iddelete

具体指向的控制器由路由地址决定,例如上面的设置,会对应index模块的blog控制器,你只需要为Blog控制器创建以上对应的操作方法就可以支持下面的URL访问:

http://serverName/blog/

http://serverName/blog/128

http://serverName/blog/28/edit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值