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