追随Laravel 4关于路由的文档,我一直在尝试创建一个域路由,该路由将处理通配符子域并将其传递给控制器操作,但我无法传递参数。

Route::group(array('domain' => '{subdomain}.myapp.com'), function()
{
    Route::get('/', function($subdomain)
    {
        die($subdomain);
    });
});
.

如果我写这样的路线,它将打印出子域,无论它可能是什么。问题是我不想在路由中编写处理这些情况的代码,但使用控制器来处理它,而不从子域上obdemapap.com到myapp.com/controller/action/子域。 所以,这样的东西:

Route::group(array('domain' => '{subdomain}.myapp.com'), function()
{
    Route::get('/', 'MyController@myAction', $subdomain);
});
.

如何将{subdomain}参数传递给控制器在这种情况下?

有帮助吗?

解决方案

似乎早上比夜晚更聪明。我用一个派出解决方案,所以如果其他人有更优雅的解决方案,请随时发布,我会接受你的答案。

Route::group(array('domain' => '{subdomain}.myapp.com'), function()
{
    Route::get('/', function($subdomain) {
        $request = Request::create('/myRoute/' . $subdomain, 'GET', array());
        return Route::dispatch($request)->getContent();
    });
});

Route::get('myRoute/{subdomain}', 'MyController@myAction');
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top