2016-11-16 95 views
0

我有一个Laravel 5.2应用程序。我有一个路由,我通过GET方法接收一个名为ID的参数。该ID的格式是给了我一些问题,一个ID形成为类似:Laravel中的URL参数格式

Somecharacter%40otherThing.somethingelse 

发送ID如上给我File not found在浏览器中,但是,如果我删除%.一切工作正常,就像它们不能在URL中共存一样。在routes.php文件文件的路径是:

Route::get('generateFile/{action}/{id?}',array('as'=>'generateFile','uses'=>'[email protected]'))->where('id', '(.*)'); 

所以,我开始相信,我必须修改路由的其中条款,但我不知道究竟我应该把对如前所述,makeit接受一个参数。先谢谢了!

+0

发生什么,如果你删除'where'? – Roadirsh

+0

或者,也许你可以在发送请求时执行'base64_encode'并在控制器中使用'base64_decode'来检索ID? – Roadirsh

+0

@Roadirsh谢谢你!这不是一个疯狂的想法,我做到了,它的工作原理(y) –

回答

0

只是通过ID与密码进行urlencode

urlencode(\Crypt::encrypt(id)); 

获得ID后面使用

urldecode(\Crypt::decrypt(id));