我已经在我的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。
请帮帮忙。
发布于 2016-02-21 15:40:45
我不知道你为什么不将路由分离到不同的控制器,因为你说输出会有很大的不同…
下面是一个使用它的快速示例:
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
});
});https://stackoverflow.com/questions/35532729
复制相似问题