2015-06-05 94 views
0

的routing.yml

thisismyroute: 
    path:  thisroute/to/{id} 
    defaults: { _controller: MyBundle:Default:createRoutePage } 
    requirements: 
     page: \d+ 

控制器

/** 
    * Template Select 
    * @Route("/to/{id}",name="thisismyroute", requirements={"id": "\d+"}) 
    * @Method({"POST"}) 
    */ 

    public function createRoutePage($id){ 

     /* code here */ 

    } 

,當我訪問www.mysite.com/app_dev.php/thisroute/to/asdfasdf它的Symfony路由標註要求訪問時,不應該因爲要求設置爲整數。沒有工作

在我routing_dev.yml我也行

_main: 資源:使用routing.yml

回答

0

對於標註的設置應該是:

/** 
* Template Select 
* @Route("/to/{id}", name="thisismyroute", requirements={"id"="\d+"}) 
* @Method({"POST"}) 
*/ 

public function createRoutePage($id) 
{ 
    /* code here */ 
} 

UPDATE

對於陽明配置嘗試

thisismyroute: 
    path:  thisroute/to/{id} 
    defaults: { _controller: MyBundle:Default:createRoutePage } 
    requirements: 
     id: \d+ 
+0

是我也嘗試過「id」=「\ d +」它仍然進入頁面時,它不應該是我沒有任何其他路線去/ – Andrei

+0

你能看到我的更新? – kapa89

+0

耶謝謝大聲笑我使用了錯誤的變量謝謝! – Andrei

0

通常當你在控制器使用@Route註解,它更容易配置的routing.yml導入您的控制器目錄中標註的一勞永逸的所有路線,像這樣:

# import routes from a controller directory 
route_group_name: 
    resource: "@YourBundle/Controller" 
    type:  annotation 

就是這樣。這樣你就不需要在routing.yml中指定每個路由。

那麼你只能使用標註在你的控制器:

/** 
* 
* @Route("/to/{id}", name="thisismyroute", requirements={"id"="\d+"}) 
* @Method({"POST"}) 
*/ 

public function myRouteAction($id) 
{ 
    /* code here */ 
} 

PS:這也是一個Symfony的建議的最佳做法是使用註解來聲明路線。