Laravel防止组参数传递给控制器

时间:2014-12-29 09:46:34

标签: laravel laravel-4 laravel-routing

我正在使用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。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不认为可以将路由组参数传递给控制器​​函数而无需编写自己的路由器类。

这不是问题的答案,而是问题的另一种可能解决方案。

我建议您通过解析主机而不是使用路由组来获取子域。

$subdomain = null;
$host = Request::getHost();
$parts = explode('.', $host);
if(count($parts) > 2){
    $subdomain = $parts[0];
}

您可以直接使用它,编写辅助函数甚至为它创建Facade。无论你喜欢什么。