我正在使用Silex url生成器命名我的路线。但是对它们的检索似乎不适用于不同的文件。
我先把它们包括在内:
include __DIR__ . '/app/pages/bootstrap.php';
include __DIR__ . '/app/news/bootstrap.php';
在页面引导程序中,我有:
$app->get('/admin/pages', function(Request $request) use($app){
// code
})->bind('admin.pages.index');
echo $app['url_generator']->generate('admin.pages.index');
在新闻引导中,我有:
$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'失败。
答案 0 :(得分:0)
将代码放在包含您发布的代码的2个文件中时,会发生以下情况:
换句话说:在第一次使用UrlGenerator之前,预计会定义所有路由。
话虽如此,如果你把所有东西放在一个文件中,我不知道为什么它应该有效,除了我猜在那种情况下,你有一个路由声明块,然后是一个带有2个UrlGenerator的块方法调用。