ZF, Как генерировать сущности с помощью Doctrine 2 - PullRequest
1 голос
/ 04 августа 2010

Недавно я решил попробовать Doctrine 2. Мне удалось частично интегрировать его в Zend.Командная строка работает, и мне удается опросить базу данных.Проблема заключается в генерации моих различных сущностей, прокси, ...

Раньше, с Doctrine 1.x, мы могли генерировать, начиная с нашей базы данных, файлы YML и бизнес-классы.

Теперь, с Doctrine 2, мы должны генерировать сущности из файлов сопоставления (метаданные в YML, XML, ...).Но файлы не могут быть сгенерированы из БД с Doctrine 2 (я ничего не нашел ...).

Итак, я создал файлы YML БД с помощью MySQL Workbench.Но эти файлы не совместимы с Doctrine 2.

К счастью, команда doctrine имеет некоторую утилиту для преобразования YML.Но у меня возникает другая проблема: я не нахожу это или помогаю в этом!

Может быть, кто-то знает Doctrine 2 лучше меня и может мне помочь?Моя проблема при конвертации:

Could not map doctrine 1 type 'float'!

Это часть YML, которая, кажется, имеет проблему:

  tVenue:
  tableName: t_venues
  columns:
    ven_id:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    ven_title:
      type: string(250)
      default: null
    ven_adress:
      type: clob(65535)
      notnull: true
    ven_zip:
      type: string(10)
      notnull: true
    cit_id:
      type: integer(4)
      notnull: true
    cit_label:
      type: string(150)
      notnull: true
    ven_lat:
      type : float
      default: null
    ven_long:
      type : float
      default: null
  indexes:
    cit_id:
      fields: [cit_id]
  options:
    charset: utf8
    collate: utf8_unicode_ci

Я проверяю, что это объявление было стандартным для Доктрины 1.

У кого-то была идея?Спасибо.

Ответы [ 3 ]

1 голос
/ 04 августа 2010

Для задачи с плавающей запятой:

Попробуйте decimal вместо float, оно отображается в PHP double.

0 голосов
/ 15 января 2014

Вы также можете использовать Skipper в качестве альтернативного способа генерирования Yaml / Xml / Annotations из визуальной модели.

Он полностью поддерживает Doctrine2, поэтому сгенерированные файлы схемы будут готовы к использованию, и в качестве бонуса вы можете редактировать специфические свойства ORM непосредственно в визуальной модели.Все, что вам нужно сделать, будет обрабатываться одним инструментом.

0 голосов
/ 03 декабря 2010

Я реализовал новую команду для генерации сущностей из базы данных, пожалуйста, проверьте https://github.com/umpirsky/doctrine2/blob/master/lib/Doctrine/ORM/Tools/Console/Command/GenerateEntitiesDbCommand.php

Просто добавьте это как:

$cli->addCommands(array(
// DBAL Commands
new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(),
new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(),

// ORM Commands
new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(),
new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(),
new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(),
new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(),
new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(),
new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(),
new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(),
new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesDbCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(),
new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(),
new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(),
new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(),

));

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