我正在尝试使用Kunstmaan bundles处理Symfony2并遇到一个问题。 目前我正在尝试创建目录包,一切似乎都很好,但我不想为每个产品创建菜单项。通过/ en / catalog / *菜单项中的项目slug-title动态访问产品会很棒。怎么可能?
答案 0 :(得分:3)
我们遇到了同样的问题......我们正在尝试通过创建目录项来解决这个问题,这些目录项也是菜单项但是作为父项为null,因此它们不会显示在树中。通过执行此操作,您仍然拥有版本控制系统和所有内容,但是当您有许多目录项时,它不会减慢树的速度。您可以使用AdminListBundle(https://github.com/Kunstmaan/KunstmaanAdminListBundle)
在管理列表中的某处列出这些目录项要将这些目录项链接到某个概述页面,我们正在使用chainrouter(https://github.com/Kunstmaan/KunstmaanNodeBundle/blob/master/Resources/doc/NodeBundle.md)。目前我们没有一个明确的例子,但也许这可以让你开始?我们正在尝试更容易地使用chainrouter,但它仍在构建中:https://github.com/Kunstmaan/KunstmaanNodeBundle/pull/38/files
答案 1 :(得分:1)
最快/最简单的方法是将您的产品制作为可以定义为目录子项的页面。 KunstmaanNodeBundle将照顾slu ..
在Catalog类中(我假设它扩展了AbstractPage)覆盖了getPossibleChildTypes方法:
public function getPossibleChildTypes()
{
return array (
array(
'name' => 'Product',
'class'=> "Acme\CatalogBundle\Entity\Product"
)
);
}
这样您就可以在目录页面下创建产品作为子页面。然后,您只需要在目录页面的树枝模板中获取目录的子项。
缺点是,每个产品都是一个页面(带版本控制),而不是一个简单的实体。