我想将所有具有相同前缀的URL路由到相同的操作,如:
http://host/pic/with/bird
http://host/pic/with/bird/with/fish
http://host/pic/with/pig/theme/sad/resolution/high
所有的Piccontroller@showPic
我试着像一样写路线
Route::get("/pic/*","Piccontroller@showPic");
要将所有以/pic/开头的url路由到相同的函数。但带有*的路线不起作用。
如果您查看Illuminate'Routing'Route
,它有一个名为where()
的方法。对该方法的评论说"在路由上设置正则表达式要求。"
看起来是这样的:
Route::get('/pic/{section}', 'Piccontroller@showPic')->where(['section' => '.*']);
本质上意味着它将接受/pic/
部分之后的任何内容,并将其作为变量传递给showPic()
方法。现在,在方法上解析它应该像在正斜杠上解析简单的explode()
一样简单,假设您有某种模式或只是试图获取每个值。