2015-06-10 98 views
1
相同數量則params的多條路線

我的客戶希望在網站兩個網址:在laravel

a) www.example.com/{cityname}-items.html 
b) www.example.com/{statename}-items.html 

我怎麼代碼兩條路線這兩個網址嗎?第一個列出一個城市的項目,第二個列出一個項目下的項目。

Route::get('{city}', '[email protected]'); 
Route::get('{state}', '[email protected]'); 

當我這樣做?只有第一個路由工作,因爲兩者都有相同數量的參數客戶希望這樣做而不更新url

+0

你不能,以這種方式。 bcs當你通過url來訪問時,路由不會有任何區別。爲了解決這個問題,至少你必須加上一些關鍵字,例如「/c/{city}-items.html」和「s/{state} -items.html」來區分它們。 –

回答

1

基本上:你不能。有沒有辦法有你的系統打例如

www.example.com/whashington-items.html 

時,如果你嘗試打whashington的狀態,城市whashington的數字出來。

你應該考慮分割你的邏輯:

www.example.com/city/{name}-items.html 
www.example.com/state/{name}-items.html 

2 「端點」(或排序),這聽起來更好,我覺得。

0

請試試這個:

Route::get('{cityOrState}-items.html', function($cityOrState){ 
    $city = City::find($cityOrState); 

    if(is_null($city)) 
    { 
     return App::make('CityController')->searchState($cityOrState); 
    } 

    return App::make('CityController')->searchCity($cityOrState); 
});