2016-11-05 86 views
1

我有一个Laravel 5.2应用程序,我想在两个不同的域/路线上显示相同的页面。我有工作使用以下路线结构:Laravel url别名,url生成不匹配

的路线,我的主域:

Route::group(['domain' => 'www.primarydomain.com', 
       'prefix' => 'demo-page']), function(){ 
    Route::get('/my-page', '[email protected]'); 
    Route::get('/my-second-page', '[email protected]'); 
} 

我secundary域的路由(注:无前缀):

Route::group(['domain' => 'www.secundarydomain.com',]), function(){ 
     Route::get('/my-page', '[email protected]'); 
     Route::get('/my-second-page', '[email protected]'); 
} 

的想法是这两条路线都可以工作,而且他们这样做。 www.secundarydomain.com/my-page和www.primarydomain.com/demo-page/my-page都可以工作。

问题是我现在想要生成一个链接到我的第二页。为构建我的网址在我的意见,我使用下面的函数来生成一个链接到我,第二页:

url('/my-page') 

这个函数总是生成一个链接到www.primarydomain.com/my-page,而我需要链接到www.primarydomain.com/demo-page/my-page。

有没有简单的解决方案来解决这个问题?这可以使用中间件来解决,还是需要一个自定义的URL功能?

预期的结果:

url('my-page')上www.primarydomain.com应产生于www.secondarydomain.com链接到www.primarydomain.com/demo-page/my-page

url('my-page')应该产生一个链接到www.secondarydomain.com/my-page

回答

0

您可以指定别名到您的路线。

Route::group(['domain' => 'www.primarydomain.com', 'prefix' => 'demo-page']), function(){ 
    Route::get('/my-page', [ 
     'as' => 'my_page_prefixed', 
     'uses' => '[email protected]' 
    ]); 
    Route::get('/my-second-page', [ 
     'as' => 'my_second_page_prefixed' 
     'uses' => '[email protected]' 
    ]); 
} 

然后您可以使用{{ route('my_page_prefixed') }}或任何其他别名在刀片模板上调用别名路径。

+0

这不会是一个解决方案,因为主域和辅助域都使用相同的代码。所以每个域使用不同的别名是不可能的 – Arnout