我正在使用Laravel 4.1。所以,我想用這個結構來創建網址:使用domain.tld /的MacBook PRO-2389,並使用這條路線:從slu Get中獲取ID Laravel 4
Route::get('{sc}-{id}', '[email protected]')
->where('id', '\d+');
但問題時,塞包含多個劃線我不能得到完全的ID。
我該怎麼做,並保持相同的結構?
編輯
我確實到現在爲止唯一的解決辦法是與此正則表達式([a-z0-9\-]+)\-([0-9]+)
驗證整個塞,然後我爆炸蛞蝓得到這樣的最後一個項目:
$id = explode('-', $slug);
$id = end($id);
Route::get('{slug}', function($slug){
$id = explode('-', $slug);
// 2389
$idOnly = array_pop($id);
// macbook-pro
$nameDashes = implode('-', $id);
// It is possible to pass $idOnly and $nameDashes to `[email protected]` ?
})
->where('slug', '([a-z0-9\-]+)\-([0-9]+)');
你不能,不會產生正則表達式,這將讓你從'id'字符串只有數字,但是這將是困難的,如果你有個數字在你的蛞蝓 –
唯一的解決辦法我到現在爲止是用這個正則表達式'([a-z0-9 \ - ] +)\ - ([0-9] +)'來驗證整個slu and,然後我爆炸這個slu to以獲得像這樣的最後一個項目: '$ id = explode(' - ',$ slug);' '$ id = end($ id);' –