我成功获得Symfony CMF和自动路由捆绑(以及自定义控制器)以下列方式(路径)加载文档:
.../category/article-name
这很好用。但我需要这样的东西,很容易通过标准的Symfony2实现:
.../category/article-name/{page}
将页面作为参数传递给控制器, 例如。 $ page = 2 - >控制器处理文章文档的内容以仅显示给定页面 或$ page = null - > (所以没有{page}参数) - 如上所述,但显示的是页面默认值1
如何使Symfony CMF的路由自动捆绑包使用路由中的参数?
因此,基本路径与此自动路由捆绑配置中的配置完全相同,但另外我可以使用传递给控制器的参数,以便可以对它们做出其他决策。任何提示?谢谢!
我的自动路由配置:
MyApp\MyCmsBundle\Document\Article:
content_path:
#fixed path of all categories and therefore articles
articles_categories_path:
provider: [specified, { path: /cms/routes }]
exists_action: use
not_exists_action: throw_exception
#category path
category_path:
provider: [content_method, { method: getRouteNodeCategory }]
exists_action: use
not_exists_action: throw_exception
#article name
content_name:
provider: [content_method, { method: getTitle }]
exists_action: [auto_increment, { pattern: -%d }]
not_exists_action: create
MyApp\MyCmsBundle\Document\ArticlesCategory:
content_path:
#fixed path of all categories and therefore articles
articles_categories_path:
provider: [specified, { path: /cms/routes }]
exists_action: use
not_exists_action: throw_exception
#category name
content_name:
provider: [content_method, { method: getTitle }]
exists_action: use
not_exists_action: create
文章文档的getRouteNodeCategory()只返回父项(即类别)名称。以下是本文档内容的一部分:
public function getRouteNodeCategory()
{
return $this->parent->getTitle();
}
答案 0 :(得分:1)
这在RoutingAutoBundle目前是不可能的,但它可以很容易地实现。
RoutingAutoBundle创建Route文档,扩展CMF的Route对象。这些Route对象支持变量模式,它允许您指定动态参数:
https://github.com/symfony-cmf/RoutingBundle/blob/1.2/Model/Route.php#L53
因此我们只需要扩展映射以包含URL中动态(变量)参数的详细信息。
另请注意,很快将发布新版本的路由自动捆绑包,其中包含更好的配置格式。
如果您可以创建一个详细说明您的用例的问题,我们将尝试为1.0版本实现它。