2016-01-06 46 views
2

我想将所有具有相同前缀像同一个动作的网址:如何路由具有相同前缀的所有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/*","[email protected]"); 

将所有以/ pic /开头的url路由到相同的函数。 但路由与*不起作用。

+0

您使用的是什么版本的Laravel? –

回答

2

如果你看看Illuminate\Routing\Route,它有一个方法称为where()为此。对该方法的评论说“在路线上设置正则表达式要求。”

这将是这样的:

Route::get('/pic/{section}', '[email protected]')->where(['section' => '.*']); 

本质上意味着/pic/部分后,将采取任何东西,把它作为一个变量的showPic()方法。现在,假设你有某种模式或者只是试图获取每个值,解析该方法的方法应该像正斜杠上的简单explode()一样简单。

+0

谢谢。我误解了where子句的功能,这真的很有帮助。 – ArchenZhang

+0

如果我的答案已解决您的问题,请您接受答案吗? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

相关问题