Symfony2 с дбал - PullRequest
       2

Symfony2 с дбал

1 голос
/ 02 марта 2012

Я искал в Google это и не могу найти ответ. Я новичок в Symfony. В некоторых местах я слышу о schema.yml, и вы можете создать все таблицы с ним. Но в Symfony2, где именно мы создаем этот файл? Следующая страница: http://symfony.com/doc/2.0/book/doctrine.html, действительно не отвечает на этот вопрос, а на странице Symfony.

Есть ли документация, которая может ответить на этот вопрос? Что касается Symfony1.x, я слышал, что вы можете создать файл schema.yml, а затем выполнить команду create shema для создания всех таблиц и т. Д. Сейчас я могу создать базу данных, но как я могу создать таблицы? Где я могу определить их в Symfony2?

1 Ответ

2 голосов
/ 02 марта 2012

В Symfony2 вам нужно определить сущность сопоставления по сущности.Существует три вида сопоставления: аннотации, сопоставление YAML и XML.

Страница Symfony, на которую вы ссылаетесь, действительно отвечает на этот вопрос.Например, если вы попали в раздел Mapping , вы увидите этот абзац:

Чтобы Doctrine могла это сделать, вам просто нужно создать «метаданные»,или конфигурация, которая сообщает Doctrine, как именно класс Product и его свойства должны быть сопоставлены с базой данных.Эти метаданные могут быть указаны в нескольких различных форматах, включая YAML, XML или непосредственно внутри класса Product с помощью аннотаций:

Затем, если вы пойдете чуть ниже, вы увидите панель с вкладками стри варианта отображения.Нажмите на вкладку YAML, и вы увидите:

# src/Acme/StoreBundle/Resources/config/doctrine/Product.orm.yml
Acme\StoreBundle\Entity\Product:
    type: entity
    table: product
    id:
        id:
            type: integer
            generator: { strategy: AUTO }
    fields:
        name:
            type: string
            length: 100
        price:
            type: decimal
            scale: 2
        description:
            type: text

Этот фрагмент YAML является информацией о сопоставлении и находится по этому адресу: src/Acme/StoreBundle/Resources/config/doctrine/EntityName.orm.yml.Часть EntityName должна быть заменена именем вашей собственной сущности.Если у вас класс сущности Product, то он будет Product.orm.yml.Вам нужно будет определить несколько .yml файлов для определения нескольких объектов.

Следующим шагом будет заполнение схемы базы данных.Предполагая, что ваша конфигурация в порядке, вы будете использовать эти команды для соответствующего удаления и создания базы данных:

php console doctrine:database:drop --force
php console doctrine:database:create

Затем, чтобы заполнить схему, вы должны использовать эту команду:

php console doctrine:schema:update --force

Документация для Doctrine - это место для проверки других картографических данных и всего, что вам нужно для взаимодействия с базой данных в Symfony2 через Doctrine.

С уважением,Matt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...