php - Laravel 中的通配符 URL 路由

标签 php laravel-4 laravel-routing

我正在尝试在 laravel 中创建一组路由。前两个很简单。

/加载主页
/12345 通过 ResultController 加载 12345 的结果,这是我使用 {result}/ 完成的。

我想要的第三条路线是/12345/foo/bar/baz,它最终将执行显示文件的第二个 Controller 。基本上/foo/bar/baz 代表文件位置,因此它可以是任何深度级别。我想将它作为单个值传递给 Controller ​​。我尝试了以下路线来简单测试它是否有效:

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。将其放在所有路线的底部。

关于php - Laravel 中的通配符 URL 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227652/

相关文章:

php - 检查选择中的总和值

php - 准备好的语句 : Fetch as array

javascript - 50k 点的图形库? PHP 或 JavaScript

Laravel 应用程序语言改变?

php - 如何创建 laravel artisan 命令?

Laravel 4 在我的 Controller 中使用/获取路由名称

php - TCPDF - 页码不完全右对齐

mysql - 使用 Laravel 查询生成器加入无法正常工作

laravel - Laravel 4 : Route to localhost/controller/action

laravel - 在 Laravel 中使用类别定义 SEO 路由