Laravel网址别名,网址生成不匹配

时间:2016-11-05 09:42:36

标签: php laravel laravel-5.2 laravel-routing

我有一个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的链接

www.secondarydomain.com上的

url('my-page')应生成指向www.secondarydomain.com/my-page的链接

2 个答案:

答案 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') }}或任何其他别名在刀片模板上调用别名路线。