2015-05-02 74 views
0

我想有這個兩個網址與一個航的工作:在路線Laravel optionnal參數

mysite.com/search

mysite.com/food/搜索

我已經做到了這一點,但這只是與第二之一。

Route::group([ 'prefix' => '{section?}' ], function(){ 
    Route::get('/search', [ 'as' => 'search', 'uses' => '[email protected]' ]); 
}); 

回答

1

我不相信在這種情況下,有必要把它分成一組。在laravel中有幾種通配符路由方法。

使用毛坯:

Route::get('{section?}/search', [ 'as' => 'search', '[email protected]']); 

使用通配符:

Route::get('(:any?)/search', ['as' => 'search', '[email protected]']); 

使用正則表達式:

Route::get('(.*)/search', ['as' => 'search', '[email protected]']); 

顯然,如果你想要做的,你需要通配符處理在PostController中將參數傳遞給您的搜索方法。

我有一段時間沒有使用Laravel,所以這可能會模糊,但我認爲這應該可以解決您的問題。

1

爲什麼你不使用 mysite.com/search/food 而不是 mysite.com/food/search?

通過這樣做,你將有多個,現在解決您的這些航線的一個

Route::group([ 'prefix' => 'search' ], function() { 
    //your code 

    //as an example 
    Route::get('/',....); 
    Route::get('/food' , ...) ; 
}); 

這會使你的URL更加人性化的閱讀,易於功能添加到它。