我正在使用Laravel 4.2项目,我有以下代码:
在路线中:
Route::group(array('domain' => '{subdomain}.'.Config::get('app.domain')), function(){
Route::controller('device', 'DeviceController');
});
我的DeviceController包含:
class DeviceController extends BaseController {
public function getFoo($param1, $param2){
return View::make('testview');
}
}
当我致电http://blabla.mydomain.com/device/1/2时,$ param1持有blabla而$ param2持有1。
Laravel是否有可能不将子域参数传递给控制器,因此$ param1变为1,$ param2变为2。
谢谢!
答案 0 :(得分:0)
我不认为不可以将路由组参数传递给控制器函数而无需编写自己的路由器类。
这不是问题的答案,而是问题的另一种可能解决方案。
我建议您通过解析主机而不是使用路由组来获取子域。
$subdomain = null;
$host = Request::getHost();
$parts = explode('.', $host);
if(count($parts) > 2){
$subdomain = $parts[0];
}
您可以直接使用它,编写辅助函数甚至为它创建Facade。无论你喜欢什么。