Как обрабатывать маршрут субдомена Laravel 4 с помощью контроллера, передавая субдомен в качестве аргумента

Следуя документации Laravel 4 по маршрутизации, я пытался создать маршрут домена, который будет обрабатывать поддомен с подстановочными знаками и передавать его действию контроллера, но у меня возникают проблемы с передачей аргумента.

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

Если я напишу маршрут таким образом, он распечатает поддомен, каким бы он ни был. Проблема в том, что я не хочу писать код, который обрабатывает эти ситуации, в файле routes.php, а использую Контроллер для обработки всего этого без перенаправления с subdomain.myapp.com на myapp.com/controller/action/. поддомен. Итак, примерно так:

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

Как в этом случае передать контроллеру аргумент {subdomain}?


person Lazar Vuckovic    schedule 27.02.2014    source источник


Ответы (1)


Кажется, будто утро умнее ночи. Я выбрал решение для отправки, поэтому, если у кого-то еще есть более элегантное решение, пожалуйста, не стесняйтесь публиковать, и я приму ваш ответ вместо этого.

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');
person Lazar Vuckovic    schedule 28.02.2014