0
簡單的情況。在我所有的應用程序我使用的路線標註驅動程序,在routing.yml
定義如下:Symfony2路由器 - 如何調用註釋路由
MyBundle:
resource: "@MyBundle/Controller/"
type: annotation
prefix: /someprefix
在MyBundle的Ctrl鍵控制器中的一些操作是這樣的:
@Route("/{page}/{status}", name="default_action", defaults={"page" = 1, "status" = "ok"}, requirements={"page" = "\d+"})
public function defaultAction($page, $status) {...}
現在我要做出這個動作 - 默認在訪問我的網頁時採取行動。我不能只用@Route("/")
,因爲我是前綴。所以我增加了routing.yml
:
_welcome:
pattern:/
defaults: { _controller: MyBundle:Ctrl:default }
並且存在的問題開始 - Symfony2的呼籲沒有從註釋只是從操作的控制器默認的動作,我得到錯誤:
Controller "...:defaultAction()" requires that you provide a value for the "$page" argument (because there is no default value or because there is a non optional argument after this one).
所以只是Symfony2沒有從@Route註解獲取默認值。
問題是:如何知道@Route的_welcome
路由?
但我不想錯過它 - 它在@Route已經聲明!那麼,爲什麼我應該做兩次? :/ – cadavre 2012-07-05 13:11:26
因爲你在yml中重新聲明它;他們是完全不同的設置,彼此不知道任何事情。 – Inoryy 2012-07-05 13:20:51