2010-08-04 2 views
1

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

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

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

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

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

Возможно, кто-то знает Доктрину 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.

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

ответ

1

Для задачи поплавка:

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

+0

Благодаря zwip, это фиксируется и YML был создан, но я хочу, чтобы генерировать объекты с моей prefixe пример: «Новости» ---> «model_news» –

0

Я реализовал новую команду для создания объектов из базы данных, пожалуйста, проверьте 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(), 

));

+8

Или использовать Doctrine ORM: преобразование-отображение --from -database yml/path/to/mapping-path-convert-to-yml – umpirsky

+0

лучший комментарий EVER – Asaf

0

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

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

Смежные вопросы