2014-05-21 105 views
1

我有以下途徑:路線默認的尾部斜線?

reviews: 
    pattern: /reviews/{uid}{trailingSlash} 
    defaults: { _controller: unrealsp.cms.controller:handle_review, uid: "index", trailingSlash : "/" } 
    requirements: { trailingSlash : "[/]{0,1}" } 

我做了這個工作,使用this stackoverflow answer尾隨斜線。

路線將識別「/評論」 URL,並參考指數UID,顯示可用的評論指數(而不是單一的評論將與任何其他UID調用)。但是,它不會將「/ reviews /」識別爲索引,並說沒有這樣的路線。我該如何改變這種狀況?

回答

0

嘗試changig到:

pattern: /reviews/ 

{uid}使得路由器需要的參數,所以如果你想/評論/是有效的,你必須從路由定義中刪除。這樣,您將只需添加控制器:

$uid = $request->get('uid','index'); 

另一種解決方案是:

reviews: 
    pattern: /reviews/{uid} 
    defaults: { _controller: unrealsp.cms.controller:handle_review } 
    requirements: { uid: "\d+" } 

reviews_index: 
    pattern: /reviews/ 
    defaults: { _controller: unrealsp.cms.controller:handle_review } 
+0

這樣,我不能訪問任何評論不屬於審查索引頁。 – ividyon

+0

刪除uid:「index」,trailingSlash:「/」} 要求:{trailingSlash:「[/] {0,1}」} 爲什麼?在控制器中,你應該做$ uid = $ request-> get('uid','index'); –

+0

這在我看來毫無意義。然後,我留下的是/評論/路線,沒有任何參數。如果在路由中沒有定義什麼,它應該知道什麼是「索引」和什麼是「uid」? – ividyon