2015-10-23 45 views
0

我修改了htaccess文件來強制結束斜線,現在想要在Laravel中生成任何URL來自動添加斜線,所以我們沒有太多的重定向。如何擴展UrlGenerator以生成尾隨斜線的鏈接?

# Force trailing slash. 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*[^/])$ /$1/ [L,R=301] 

我然後創建延伸照亮\路由\ UrlGenerator,我試圖重寫toRoute功能的CustomUrlGenerator類...

protected function toRoute($route, $parameters, $absolute) 
{ 
    $route = parent::toRoute($route, $parameters, $absolute); 

    return $route . '/'; 
} 

AppServiceProvider.php,我已經添加以下代碼...

$this->app->bind('url', function($app) { 
    return new CustomUrlGenerator($app['routes']->getBindings(), request()); 
}); 

不幸的是,我認爲這是某種方式打破了應用程序,因爲每當我嘗試使用任何使用這個功能,它ç沒有找到路線,可能是因爲我在生命週期中設置得太早。

回答

0

按在GitHub上的代碼,toRouteprotected,這意味着你不能覆蓋它作爲public,改變你的代碼如下:

protected function toRoute($route, $parameters, $absolute) 
{ 
    $route = parent::toRoute($route, $parameters, $absolute); 

    return $route . '/'; 
} 
+0

良好的漁獲物,它實際上應該保護,但我相信就PHP而言,允許增加訪問說明符。我已經更新了原來的問題。 – user3158900

+0

增加是,不減少。 – taxicala