Silex url 生成器:无法生成
Silex url generator: Unable to generate
我正在使用 Silex url 生成器来命名我的路线。但是在不同的文件中检索它们似乎不起作用。
我先把它们包括在内:
include __DIR__ . '/app/pages/bootstrap.php';
include __DIR__ . '/app/news/bootstrap.php';
在页面 bootstrap 我有:
$app->get('/admin/pages', function(Request $request) use($app){
// code
})->bind('admin.pages.index');
echo $app['url_generator']->generate('admin.pages.index');
在新闻中 bootstrap 我有:
$app->get('/admin/news', function(Request $request) use($app){
// code
})->bind('admin.news.index');
echo $app['url_generator']->generate('admin.news.index');
它生成 'admin.pages.index' perfeclty,但是对于 'admin.news.index' 我收到:
'Unable to generate a URL for the named route "admin.news.index" as such route does not exist.'
观察结果
• 当我将所有内容都放在一个文件中时,它工作正常。
• 当我将加载顺序更改为:
include __DIR__ . '/app/news/bootstrap.php';
include __DIR__ . '/app/pages/bootstrap.php';
生成 'admin.news.index' 正常,但 'admin.pages.index' 失败。
将代码与您发布的代码放在 2 个文件中时,会发生以下情况:
- 声明了一条路线(“admin.pages.index”)
- 您使用 UrlGenerator,从而调用其构造函数,它将路由作为参数。
- 声明了另一条路线(”admin.news.index”)
- 您再次使用 UrlGenerator,但这次返回相同的实例。
换句话说:所有 路由应该在您第一次使用 UrlGenerator 之前定义。
话虽如此,如果您将所有内容都放在一个文件中,我不知道为什么它会起作用,除了我猜想在那种情况下,您有一个路由声明块,然后是一个带有2 个 UrlGenerator 方法调用。
我正在使用 Silex url 生成器来命名我的路线。但是在不同的文件中检索它们似乎不起作用。
我先把它们包括在内:
include __DIR__ . '/app/pages/bootstrap.php';
include __DIR__ . '/app/news/bootstrap.php';
在页面 bootstrap 我有:
$app->get('/admin/pages', function(Request $request) use($app){
// code
})->bind('admin.pages.index');
echo $app['url_generator']->generate('admin.pages.index');
在新闻中 bootstrap 我有:
$app->get('/admin/news', function(Request $request) use($app){
// code
})->bind('admin.news.index');
echo $app['url_generator']->generate('admin.news.index');
它生成 'admin.pages.index' perfeclty,但是对于 'admin.news.index' 我收到:
'Unable to generate a URL for the named route "admin.news.index" as such route does not exist.'
观察结果
• 当我将所有内容都放在一个文件中时,它工作正常。
• 当我将加载顺序更改为:
include __DIR__ . '/app/news/bootstrap.php';
include __DIR__ . '/app/pages/bootstrap.php';
生成 'admin.news.index' 正常,但 'admin.pages.index' 失败。
将代码与您发布的代码放在 2 个文件中时,会发生以下情况:
- 声明了一条路线(“admin.pages.index”)
- 您使用 UrlGenerator,从而调用其构造函数,它将路由作为参数。
- 声明了另一条路线(”admin.news.index”)
- 您再次使用 UrlGenerator,但这次返回相同的实例。
换句话说:所有 路由应该在您第一次使用 UrlGenerator 之前定义。
话虽如此,如果您将所有内容都放在一个文件中,我不知道为什么它会起作用,除了我猜想在那种情况下,您有一个路由声明块,然后是一个带有2 个 UrlGenerator 方法调用。