Laravel - 全局更改基本URL?

时间:2014-09-20 15:22:13

标签: php laravel laravel-4

假设我的应用程序的基本URL是 - http://www.example.com(我没有在任何配置文件中设置任何内容来指定它)。应用程序中有很多硬编码的URL。

eg. <a href="/contact">Contact</a>

现在,如果我使用像http://www.example.com/country之类的网址浏览应用程序,是否可以分配全局基本网址,当我点击联系人时,我会转到 - http://www.example.com/country/contact

有很多这样的硬编码URL,单独更改它会花费很多时间(比如用全局变量附加它)。有没有更简单的方法来执行此操作,还是在laravel中有任何特定的配置?我对laravel相当新鲜。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

你可以使用@worldask建议的有点麻烦的应用过滤器的解决方案,但我认为最好设置 named route 并使用常规更改所有出现次数表达式(任何体面的编辑器允许)。这样,对于应用程序的生命周期,您只需要更改routes.php中的路由,它就会反映在任何地方。

e.g

Route::get('country/contact', ['as'   => 'contact', 
                               'uses' => 'SomeController@someFn'];

 <a href="{{route('contact')}}">Contact</a>

当然,相同的原则适用于添加前缀路由组,因此您可以使用前缀为“country”的组来包装整个路径文件。

答案 1 :(得分:0)

您可以尝试Route Prefixing

Route::group(array('prefix' => 'country'), function(){
  Route::get('Contact', 'HomeController@index');
  Route::get('another', 'HomeController@index');
});

修改 尝试路由过滤器

Route::filter('filtername', function($route, $request, $value)
{
    if ($route == 'country') {
      return Redirect::to(url);
    }
});