2015-10-19 44 views
1

這是我的URL結構如何處理破折號路線laravel 5多參數

http://example.com/embed-id-size

http://example.com/embed-adsdfwer3-640x240

其中size是可選的參數。

我編碼在這樣的laravel 5的routes.php。

Route::any('embed-{id}-{size?}',['uses'=>'[email protected]','as'=>'embed']); 

以上所有工作順利沒有問題,但問題是當我的ID已經衝到這樣adsdfw-R3

http://example.com/embed-adsdfw-r3-640x240 http://example.com/embed-adsdfw-r3

兩個網址laravel路線以上沒有工作和路線假設有三個參數。

而且很多搜索之後,我發現這個->where('id', '.*(?=-)')我將此我的路線和其工作良好,只有當我給大小,以我的網址,但大小是應用->where('id', '.*(?=-)')大小後的可選參數變成強制性的給。

請幫我解決這個問題。

我希望你能理解我的問題。

回答

1

由於id中的破折號,你沒有簡單的方法來解決這個問題。

我要麼確保沒有破折號否則我就抓住了整個事情{id}-{size?}後來計算,如果有到底的決議或不是,哪一個是id。

+0

是的,你真的不能真正使用'-'作爲你的分隔符,如果它是一個有效的字符在ID ...也許使用'_'或'/'作爲分隔符? – andrewtweber

+0

所以我該怎麼做,請做一些代碼,並給我例子 – Sufyan

+0

我的ID有13個字符 – Sufyan