你能帮我解决我的问题吗?我正在与laravel5 App/Providers/RouteServiceProvider
合作。我试图添加到路由前缀依赖于当前的郎。例如: 我有routes.php文件,到哪里都是一样的路线:Laravel5 RouteServiceProvider不能正常工作
/blog
/home
我需要这样做: 我的网址是例如:
/en/blog
我从URL获得 “郎”我想添加路由前缀,以匹配我的路线。所以它会做水平。像这样:
$router->group(['namespace' => $this->namespace, 'prefix' => $locale], function($router) {
require app_path('Http/routes.php');
});
我不知道为什么,但它不工作...如果url为/en/blog
,它没有匹配任何路线,反正它应该... 我也试过更改命名空间和一些控制方法做到这一点:
die(print_r(Route::getCurrentRoute()));
,但命名空间的所有路由是:App\Controllers
你有一个想法,为什么它不工作?
在我看来,RouteServiceProvider没有加载,也因为,当我试图把在法map
或方法boot
die('smth');
它没有做任何事情......
这里是我的路线服务提供商:
<?php namespace App\Providers;
use Illuminate\Routing\Router;
use Illuminate\Http\Request;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider {
/**
* This namespace is applied to the controller routes in your routes file.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
/**
* Define your route model bindings, pattern filters, etc.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function boot(Router $router)
{
parent::boot($router);
//
}
/**
* Define the routes for the application.
*
* @return void
*/
public function map(Router $router, Request $request)
{
$locale = $request->segment(1);
$this->app->setLocale($locale);
$router->group(['namespace' => $this->namespace, 'prefix' => $locale], function($router) {
require app_path('Http/routes.php');
});
}
}