我使用Symfony的CMF路由包来创建动态路由(我用一个例子在这里):Symfony的重定向到动态路由名称
$route = new Route('/dynamic-url');
$route->setMethods("GET");
$route->setDefault('_controller', 'AppBundle:MyRoute:getResponse');
$routeCollection->add('my-dynamic-route', $route);
响应从getResponseAction加载()函数中MyRouteController:
/**
* No annotations here, because I want the url to be dynamic from the database
*/
public function getResponseAction(Request $request) {
return $this->render('dynamic-page-template.html.twig');
}
当我去'/动态网址',它的作品。
当另一个控制器,我想重定向到这个充满活力的路线,像这样:
return $this->redirectToRoute('my-dynamic-route');
但我得到这个错误:“链接的路由器中没有一个能够产生路线:路线“我-dynamic-route'not found“
另一个有趣的事情是:当我进入'/ dynamic-url'时,dev栏实际上表示路由名是'my-dynamic-route'。
编辑
当我加载所有的路线,我没有看到我的动态路由名称:
$this->get('router')->getRouteCollection();
我认为他们应该在列表中。
Thnx!动态路由确实“被遗忘”,而静态路由被保存。我切换到使用'LoaderInterface',所以路线被保存。我使用这个教程http://mmoreram.com/blog/2013/10/01/dynamic-routes-in-symfony2/ – BigJ