【问题标题】:How to handle Laravel 4 sub-domain route with controller, passing subdomain as an argument如何使用控制器处理 Laravel 4 子域路由,将子域作为参数传递
【发布时间】:2014-03-31 04:13:17
【问题描述】:

按照关于路由的 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('/', 'MyController@myAction', $subdomain);
});

在这种情况下,如何将 {subdomain} 参数传递给控制器​​?

【问题讨论】:

    标签: laravel-4 subdomain argument-passing laravel-routing


    【解决方案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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2016-06-26
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多