我使用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