2014-05-21 61 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