使用TP5.1版本的路由的时候,没注意看文档把我累得够呛!
项目开发完了,嫌URL太长了,所以打算使用路由把URL弄短一点,另一个原因也是为了提升一下安全性,但是使用了路由后,因为自己看文档的时候没有太注意,导致了因为一个小问题让自己折腾了两天都没有弄好,网上也搜索不到相应的答案和解决方案,最后是再仔细啃了一次文档,才解决的,哎!
我将自己的经历分享出来,希望大家不要再犯类似的错误了,有可能这种错误只有我一个人犯呢,尴尬。。
因为网站涉及到了帐户验证问题,所以需要在URL中带有邮箱进行验证,但是就是URL中带邮箱后,死活读取不了相应的规则,比如路由要求是的格式是example.com/:time/:email/:id
这样的,但是当我在URL中传入邮箱参数时,读取不了控制器的方法了,打印出来总是1,无法打印正确的控制器方法,就因为这,害我弄了两天才搞定,我想在论坛中提问,又不知道怎么去描述这个问题,所以只得自己慢慢找问题所在了,其实解决方法也太简单了,只要在路由中添加正则就行了,因为在TP5.1中的路由默认变量规则是'default_route_pattern' => '[\w\-]+'
,而邮箱中包含了@和小数点,所以无法验证通过,导致了无法正常读取控制器方法,只要我们增加变量规则就行了,把需要用到邮箱验证的URL增加规则为->pattern('email', '[\w@.]+')
,只要多增加支持@和小数点就可以正常读取控制器方法了。
就是因为不仔细阅读文档,导致走了这么多弯路,不过出了错了才能避免以后犯同样的错,都是值得的。
目前共有 2 条回复