2013-04-23 56 views
1

我正在嘗試使用Symfony2的Kunstmaan bundles並且有一個問題。 目前我試圖創建目錄捆綁包,一切似乎okey,但我不想爲每個產品創建菜單項。在/ en/catalog/*菜單項中通過item slug-title動態訪問產品將會很好。這怎麼可能?如何爲目錄項目創建動態路由器

+0

看看這裏http://symfony.com/doc/2.1/book/routing.html。第一個例子是關於你的問題。 – Michi 2013-04-23 13:40:37

回答

1

最快/最簡單的方法是將您的產品作爲可定義爲您的產品目錄的子頁面的頁面。 KunstmaanNodeBundle將照顧slu。。

目錄中的類(我假設它擴展自AbstractBase)覆蓋getPossibleChildTypes方法:

public function getPossibleChildTypes() 
{ 
    return array (
     array(
      'name' => 'Product', 
      'class'=> "Acme\CatalogBundle\Entity\Product" 
     ) 
    ); 
} 

這樣你可以創建產品作爲下您目錄頁子頁面。然後,您只需要將目錄中的孩子放入目錄頁面的樹枝模板中即可。

缺點是,每個產品都是獨立的頁面(與版本控制),而不是一個簡單的實體。

3

我們遇到了同樣的問題...我們正在嘗試通過創建也是菜單項但是具有null作爲父項的目錄項來解決此問題,以便它們不會顯示在樹中。通過這樣做,您仍然擁有版本控制系統和所有內容,但是當您有許多目錄項時,它不會減慢您的樹。您可以使用AdminListBundle(https://github.com/Kunstmaan/KunstmaanAdminListBundle

對這些目錄項鍊接到我們使用的是chainrouter(https://github.com/Kunstmaan/KunstmaanNodeBundle/blob/master/Resources/doc/NodeBundle.md)一定概述頁面管理員列表地方列出這些目錄項。現在我們沒有一個明確的例子,但也許這可以讓你開始?我們正在嘗試使用鏈式傳送器更容易,但它仍在建設中:https://github.com/Kunstmaan/KunstmaanNodeBundle/pull/38/files