2016-02-21 85 views
0

我在我的laravel 5.2应用中设置了多域路由。我想达到的是,如果用户点击membership.app,他应该被服务于不同的主页,而不是点击erp.app域名的用户。Laravel 5.2中的多域路由

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('/', '[email protected]'); 
    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'); 
}); 

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

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

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

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

请帮忙。

回答

0

我不知道你为什么不来分隔条件不同控制器的路线就像你说的输出将是完全不同的......

的使用是一个简单的例子:

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 
    }); 

});