学无止境,天涯煮梦!

laravel路由不存在但可访问

2019-01-19 17:53:53 | 煮梦 | Laravel5.6

今天遇到一个超奇葩的问题。  

那就是,我定义了一个路由,并用控制器,给这个路由,指定了页面。

可结果呢?这路由非但不指向目标页面,反而指向了另外一个页面。  

于是我就百度,查到了什么路由缓存、视图缓存等一堆答案。

都试了一遍,把所有缓存都清了一遍,结果还是没用。 

于是我就把web.php重新阅读了好几遍,最后知道原因了。 

原因在于传参的问题。 

首先,我定义了一个路由Route::get('/a') 然后为了做查询,又定义了一个Route::get('/a/{id}') 另一个页面叫做Route::get('/a/create') 我就是访问这个create页面,会访问到/a/{id}的页面 原因就出在这个{id}上。 

虽然我这里定义的变量是id,但实际上,我后台也没做验证,也就是说,别说传入数字了,就是传入汉字都没问题。 

因此,访问/a/create的时候,系统将create当成了/a的参数,也就是/a/{id}。 

于是,就出错了。  

所以解决办法也很简单,将/a/{id}的名字改一下,比如我要做查询,可以叫/a/search/{id},或者去后台做个验证。

上一篇 下一篇