【问题标题】:Multi domain routing in Laravel 5.2Laravel 5.2 中的多域路由
【发布时间】:2016-02-21 05:38:56
【问题描述】:

我在我的 laravel 5.2 应用程序中设置了多域路由。我想要实现的是,如果用户点击,membership.app,与点击 erp.app 域的用户相比,应该为他提供不同的主页。

Route::pattern('erp', 'erp.app|erp.domain.com');
Route::pattern('membership', 'membership.app|membership.domain.com');

Route::group(['middleware' => ['web', 'auth'], 'domain' => '{erp}'], function() {
    Route::get('/', 'HomeController@getIndex');
    Route::controller('members', 'MembersController');
    Route::controller('users', 'UsersController');
    Route::controller('settings', 'SettingsController');
});

Route::group(['middleware' => 'web', 'domain' => '{erp}'], function () {
    Route::controller('auth', 'Auth\AuthController');
});

Route::group(['middleware' => 'web', 'domain' => '{membership}'], function () {
    Route::controller('/', 'BecomeMemberController');
});

Route::group(['middleware' => 'web'], function () {
    Route::controller('ajax', 'AjaxController');
});

我尝试了这种设置,但它破坏了代码,每个控制器方法中的第一个参数是 url 而不是预期值。

假设我在members 控制器中有一个方法hello。

public function hello($param1, $param2)
{
    ....
}

如果我访问erp.app/members/hello/1/2 url 并尝试打印出控制器方法的$param1,它会返回erp.app,而不是在这种情况下预期的1。

请帮忙。

【问题讨论】:

    标签: laravel routing laravel-5.2


    【解决方案1】:

    我不知道你为什么不将路由分开到不同的控制器,因为你说输出会完全不同......

    使用它的简单示例:

    Route::group(['domain' => '{type}.myapp.com'], function () {
    
    Route::get('members/hello/{id1}/{id2}', function ($type, $id1, $id2) {
    
            // when you enter --> members.myapp.com/hello/12/45
    
            var_dump($type); //memebers
            var_dump($id1); //12
            var_dump($id2); //45
        });
    
    });
    

    【讨论】:

      猜你喜欢
      • 2016-07-28
      • 1970-01-01
      • 2016-12-18
      • 2017-07-19
      • 2016-04-25
      • 1970-01-01
      • 2014-05-14
      • 2016-08-30
      相关资源
      最近更新 更多