簡體   English   中英

Laravel中的通配符URL路由

[英]Wildcard URL routing in Laravel

我正在嘗試在laravel中創建一組路由。 前兩個很簡單。

/裝回家
/ 12345通過ResultController加載12345的結果,我用{result}/

我想要的第三條路徑是/ 12345 / foo / bar / baz,它最終將執行第二個顯示文件的控制器。 基本上,/ foo / bar / baz表示文件位置,因此它可以是任意深度。 我想將其作為單個值傳遞給控制器​​。 我嘗試了以下方法來簡單地測試它是否可以工作:

Route::get('/', function()
{
    return View::make('home.main');
});
Route::get('{result}/', 'ResultController@showResult');
Route::get('{result}/(.*)', function() {
    return 'Huzzah!';
});

當前,轉到{result} /以下的任何路徑仍會產生404。例如:

/12345/foo -> Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

您可以嘗試這樣的操作,但可能不是一個很好的解決方案:

Other route declaration
Route::get('')

// At the bottom
Route::get('{result}/{any?}', function($result, $any = null) {

    // $any is optional
    if($any) {
        $paramsArray = explode('/', $any);
        // Use $paramsArray array for other parameters
    }

})->where('any', '(.*)');

請注意,它會捕獲與此匹配的任何URL 將此放在所有路線的底部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM