2016-02-21 83 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 
    }); 

});