Symfony2的可排序列表可重用

时间:2013-03-11 15:49:18

标签: mongodb symfony

我已将Symfony1 Cookbook http://symfony.com/legacy/doc/cookbook/1_2/en/sortable的这一条目重写为Symfony2。我的第一个目标是经典的可排序列表:

enter image description here

所有文档(MongoDB)都有一个位置字段,它是整数类型,并显示它们的顺序。

我已经创建了一个服务类Sortable,其中有以下方法:

class Sortable
{
    //Return the position of the document
    public function getByPosition($position = 1, $document, $site, $item = null){ /**/ }

    //Return all elements sorted by position
    public function getAllByPosition($document, $site){/**/}

    //Return the max position of the items within a parent item
    public function getMaxPosition($document, $site, $parent = null){/**/}

    //Swap the position between $itemOne and $itemTwo
    public function swapWith($itemOne, $itemTwo, $document){/**/}

    //Set the new position => +1
    public function executeUp($document, $id){/**/}

    //Set the new position => -1
    public function executeDown($document, $id){/**/}

    //Persist document with the new position
    public function save($item, $document){/**/}
}

这很好但主要问题是这个类很难重复使用。

- $ document var是数据库中的文档名称,例如在 createQueryBuilder('MyBundle'。$ document)

上使用

- $ site var是我的应用的网站,因为每个用户都有一个网站。

- $ parent var的类型为$ document,它是相同类型文档的父级。

问题对我来说,这几乎不可重用,我要在控制器操作中调用上面的所有方法,然后检查Twig模板中的位置。我想实现一个twig扩展,它调用我的服务并完成我在控制器和twig中所做的所有逻辑。此外,它适用于任何文档。

我怎么能得到这个?

0 个答案:

没有答案