使用TP5.1版本的路由的时候,没注意看文档把我累得够呛!

babrx 1个月前 120

项目开发完了,嫌URL太长了,所以打算使用路由把URL弄短一点,另一个原因也是为了提升一下安全性,但是使用了路由后,因为自己看文档的时候没有太注意,导致了因为一个小问题让自己折腾了两天都没有弄好,网上也搜索不到相应的答案和解决方案,最后是再仔细啃了一次文档,才解决的,哎!

我将自己的经历分享出来,希望大家不要再犯类似的错误了,有可能这种错误只有我一个人犯呢,尴尬。。

因为网站涉及到了帐户验证问题,所以需要在URL中带有邮箱进行验证,但是就是URL中带邮箱后,死活读取不了相应的规则,比如路由要求是的格式是example.com/:time/:email/:id这样的,但是当我在URL中传入邮箱参数时,读取不了控制器的方法了,打印出来总是1,无法打印正确的控制器方法,就因为这,害我弄了两天才搞定,我想在论坛中提问,又不知道怎么去描述这个问题,所以只得自己慢慢找问题所在了,其实解决方法也太简单了,只要在路由中添加正则就行了,因为在TP5.1中的路由默认变量规则是'default_route_pattern' => '[\w\-]+',而邮箱中包含了@和小数点,所以无法验证通过,导致了无法正常读取控制器方法,只要我们增加变量规则就行了,把需要用到邮箱验证的URL增加规则为->pattern('email', '[\w@.]+'),只要多增加支持@和小数点就可以正常读取控制器方法了。

就是因为不仔细阅读文档,导致走了这么多弯路,不过出了错了才能避免以后犯同样的错,都是值得的。

0 人点赞  ∙  0 人收藏  
加入收藏 点赞 我要评论

目前共有 2 条回复

thanklj
thanklj 2天前

为啥要看文档?我觉得看源码明白的更快也更容易,哈。。

dosmoking
dosmoking 2天前

平时一定是个很粗心的人,写代码需要注意细节