2016-11-05 83 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