首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

3分钟短文:Laravel路由注册,你必须掌握的“动词”!

引言

无论是web页面还是API接口,我们都绕不开的是路由地址,网络资源定位也只能依赖于路由地址,它是衔接网络请求与应用程序的桥梁。

本期为大家说一说用laravel注册路由的那些必知必会的方法。

代码时间

遵循编程惯例,首先实现一个 hello world 的示例。在路由文件 routes/web.php 内注册一个get请求的路径:

大家注意,get这个静态方法,是一个动词,声明了该请求的方式是 GET 请求。同样地,我们可以注册更多的类似路由,在路由文件内注册更多的地址:

上面的4个路由与 hello world 路由不同,我们做了修改,在闭包内返回了一个 view() 方法创建的视图。这4条路由都是GET方式,如果使用其他HTTP标准的请求方式,可以如下注册:

除了使用闭包返回数据,路由注册也可以指向控制器方法,比如这样:

动态路由需要用户提供更多个输入参数,所以在规划路由上,可以使用占位符接收路由地址的数据,比如这样写:

位置参数 id 在正确传入数值之后,就会传递到指定的方法内,在此例是 $id。传递多个位置参数也是毫无压力的:

我们路由内使用的位置变量,和闭包形参并不相同,这样也完全可以使用。但是并不推荐,前后保持一致性,有利于bug排查和调试,是最佳实践。

有些位置参数,可以填可以不填,并不是强制要求的。或者说,如果不传的话,给定一个默认值,经过数据处理后返回给用户也是可以的。那么可以声明该位置参数为可选参数,代码如下:

不仅于此,你还可以直接在路由上对传入数据进行有效性判断,把无效的数据拦截到路由层。约束条件支持正则表达式,比如这样写:

此处 where 方法接收参数,指定参数 id 必须符合指定的正则表达式,也就是纯数字。还可以指定为纯字母的正则:

要求 username 传入的参数只能是多个大小写字母的组合。如果路由内声明了多个位置参数,且都需要验证,那么在 where 方法内传入参数名 + 正则的数组即可:

有了这样的条件约束方法,你完全可以利用正则的强大的功能,组装出更强劲的验证。

写在最后

本文初步介绍了laravel内注册一条路由的方法,简单地讲解了位置参数的传入和接收,以及在路由内添加正则表达式赋能的条件约束方式。都是基础而且使用的,大家一定要牢固掌握。

Happy coding :-)

我是@程序员小助手,专注编程知识,圈子动态的IT领域原创作者

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201019A0HAWO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券