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