2016-01-06 50 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 –

相關問題