【问题标题】:Laravel prevent group parameter passing to controllerLaravel 阻止组参数传递给控制器
【发布时间】:2015-02-25 12:00:45
【问题描述】:

我正在开发一个 Laravel 4.2 项目,我有以下代码:

在路线中:

Route::group(array('domain' => '{subdomain}.'.Config::get('app.domain')), function(){
    Route::controller('device', '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。

谢谢!

【问题讨论】:

  • 如果您不想使用subdomain 路由参数,为什么还要使用它?
  • 我在另一段代码中使用了子域。这只是一个简化。

标签: laravel laravel-4 laravel-routing


【解决方案1】:

我认为在不编写自己的路由器类的情况下将路由组参数传递给控制器​​函数是不可能的。

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

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

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

您可以直接使用它,编写一个辅助函数,甚至为它创建一个外观。随心所欲。

【讨论】:

    猜你喜欢
    • 2018-07-02
    • 2020-11-30
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2016-05-16
    • 2017-01-12
    • 1970-01-01
    • 2015-01-23
    相关资源
    最近更新 更多