2014-02-27 37 views
3

繼Laravel 4有關路由的文檔後,我一直試圖創建一個域路由,它將處理通配子域並將它傳遞給控制器的行爲,但我無法傳遞參數。如何使用控制器處理Laravel 4子域路由,將子域作爲參數傳遞

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

如果我寫這樣的路由,它會打印出子域,不管它是什麼。問題是我不想在routes.php文件中編寫處理這些情況的代碼,但是使用Controller來處理所有這些情況,而無需從subdomain.myapp.com重定向到myapp.com/controller/action/子域。 所以,這樣的事情:

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

如何通過{}子域參數在這種情況下,控制器?

回答

2

看起來好像早晨比晚上更聰明。我使用了調度解決方案,因此如果其他人有更優雅的解決方案,請隨時發佈,我會接受您的答案。

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}', '[email protected]');