упорядочение предметов в учении - PullRequest
1 голос
/ 16 мая 2011

Я смотрел на поведение nestedSet в Symfony, используя doctrine, чтобы отобразить иерархию nestedSet в модуле администратора для моей CMS.

Я сталкивался: http://redotheoffice.com/?tag=doctrine-drag-drop-admin-generator-symfony-nestedset, который на первый взгляд выглядел великолепно, и теперь я реализовал это.

Моя проблема связана с попыткой упорядочить корневые узлы, так как они организованы по root_id, чего не делает эта реализация.

Я обнаружил следующее: http://blog.rajatpandit.com/2010/03/27/ordering-list-of-items-doctrine-symfony-1-4/, но я уже создал собственный шаблон для рендеринга nestedSet методом перетаскивания, поэтому я пытаюсь использовать это.

//generator.yml
        object_actions:
      new:
      _edit:    ~
      _delete:  ~
      moveUp:
      moveDown:

Я скопировал код в мой actions.class.php, и мои классы моделей образуют ссылку выше.

При попытке переместить узел up или down выдается ошибка: $this->current_report->getId(), в executeUp () и executeDown ()

Fatal error: Call to a member function getId() on a non-object

Если я попытаюсь создать объект current_report, используя $this->current_report = new Tree(), я получу еще одну ошибку:

Fatal error: Call to a member function setPosition() on a non-object это в моем Tree.class.php файле и метод swapWith()

Позиция - это поле, которое я использую для сортировки, а не root_id.

Если бы кто-то мог помочь мне с этим, я был бы очень признателен.

Спасибо

1 Ответ

1 голос
/ 16 мая 2011

Вы не можете переупорядочить корневые узлы, используя Doctrine Nested Sets.

Если вам нужно сделать это, вы можете сделать то же самое, что я сделал, и создать поддельный уровень корневого узла. Идея состоит в том, что уровень 0 будет вашим уровнем «поддельного корня», а ваши «реальные корневые» узлы начнутся с уровня 1.

Таким образом, вы можете изменить порядок поддельных корневых узлов, и пользователь не заметит, если все сделано правильно.

Моя реализация этого метода демонстрируется здесь: http://cart.samedraw.com/cartadmin/categoryIndex

Исходный код доступен на github: https://github.com/jongallant/sfCartPlugin

...