Я пытаюсь выполнить следующие действия: http: //docs.doctrine- project.org/projects/doctrine1/en/latest/en/manual/hierarchical-data.html

Пожалуйста, поправьте меня, если я ошибаюсь. Во-первых, я создал этот класс в маршруте AppBundle / Model:

namespace AppBundle\Model;


class Item extends Doctrine_Record
{
    public function setTableDefinition()
    {
        $this->hasColumn('name', 'string', 255);
    }

    public function setUp()
    {
        $this->actAs('NestedSet');
    }
}

А потом я использую его в контроллере вот так:

$treeObject = Doctrine_Core::getTable('Category')->getTree();

У меня есть два вопроса: - Где и как мне определять таблицу категорий - В этом предыдущем коде я столкнулся с этой ошибкой: Попытка загрузить класс «Doctrine_Core» из пространства имен «AppBundle \ Controller \ Admin»

Есть идеи, пожалуйста? Спасибо

0
jmunozco 25 Ноя 2016 в 14:58

3 ответа

Лучший ответ

Doctrine имеет пакет для Symfony, который позволяет хранить все данные конфигурации в YML. https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index. html - у него есть «расширение дерева», и это именно то, что вы ищете.

1
mmmm 1 Дек 2016 в 21:50

Классы Doctrine_Record и Doctrine_Core являются частью Doctrine в версии 1.x, Symfony2 использует Doctrine 2.x, который полностью отличается от 1.x версия. Например, Doctrine 2.x не использует подход Active Record, и это то, что вы пытаетесь использовать. В Doctrine 2 классы модели (сущности) не расширяют никакие классы

Ознакомьтесь с этой частью документа, как использовать Doctrine2 в Symfony2

1
Tomasz Madeyski 25 Ноя 2016 в 12:06

Хорошо, я выполнил следующие шаги:

  1. Установите это: http://symfony.com/doc/master/bundles/StofDoctrineExtensionsBundle /index.html
  2. Не забудьте настроить конфигурацию для расширений, в данном случае для tree, как это в config.yml:

    stof_doctrine_extensions:
      orm:
        default:
           tree: true
    
0
jmunozco 27 Ноя 2016 в 22:17