Laravel 5.2中的多域路由

时间:2016-02-21 05:38:56

标签: laravel routing laravel-5.2

我在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而不是预期值。

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

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

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

请帮忙。

1 个答案:

答案 0 :(得分: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
    });

});