我有一个Laravel 5.2应用程序,我希望在2个不同的域/路由上显示相同的页面。我使用以下路由结构工作:
到我的主域名的路线:
Route::group(['domain' => 'www.primarydomain.com',
'prefix' => 'demo-page']), function(){
Route::get('/my-page', 'MyController@index');
Route::get('/my-second-page', 'MyController@getPageTwo');
}
到我的secundary域的路由(注意:没有前缀!):
Route::group(['domain' => 'www.secundarydomain.com',]), function(){
Route::get('/my-page', 'MyController@index');
Route::get('/my-second-page', 'MyController@getPageTwo');
}
这个想法是两条路线都能正常工作,而且确实如此。 www.secundarydomain.com/my-page和www.primarydomain.com/demo-page/my-page都有效。
问题是我现在想要生成指向第二页的链接。要在我的观看中构建我的网址,我使用以下功能生成指向my-second-page的链接:
url('/my-page')
此功能始终生成指向www.primarydomain.com/my-page的链接,而我需要指向www.primarydomain.com/demo-page/my-page的链接。
有什么简单的解决方法可以解决这个问题吗?可以使用中间件解决这个问题,还是需要自定义URL功能?
预期结果:
www.primarydomain.com上的 url('my-page')
应生成指向www.primarydomain.com/demo-page/my-page
的链接
url('my-page')
应生成指向www.secondarydomain.com/my-page
的链接
答案 0 :(得分:1)
最简单的方法是create your own helper,例如custom_url()
,并使用它代替url()
。
您可以查看原始url()
帮助程序的工作原理并创建类似的帮助程序。看这里:
https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/helpers.php#L806
答案 1 :(得分:0)
您可以为路线指定别名。
Route::group(['domain' => 'www.primarydomain.com', 'prefix' => 'demo-page']), function(){
Route::get('/my-page', [
'as' => 'my_page_prefixed',
'uses' => 'MyController@index'
]);
Route::get('/my-second-page', [
'as' => 'my_second_page_prefixed'
'uses' => 'MyController@getPageTwo'
]);
}
然后,您可以使用{{ route('my_page_prefixed') }}
或任何其他别名在刀片模板上调用别名路线。