Symfony2 Doctrine doctrine:generate: сущности никогда не работают
Я относительно новичок в Symfony2 и до сих пор люблю его - за исключением этой проблемы, с которой я постоянно сталкиваюсь.
The dreaded (for me): doctrine:generate:entities
когда я начал свой первый проект Symfony2, я не мог заставить эту команду работать, и в итоге просто использовал doctrine:generate: entity, который работал нормально.
на этот раз я пытаюсь написать приложение для системы, которая уже есть таблицы базы данных. Я последовал инструкция по адресу:В Symfony2 Документы который, казалось, все работает нормально, за исключением, как обычно для доктрины: generate: entities bit.у меня есть следующий файл сущности @ My/Bundle/FeedManagerBundle/Entity/Feeds.в PHP
<?php
namespace MyBundleFeedManagerBundleEntity;
use DoctrineORMMapping as ORM;
/**
* Feeds
*
* @ORMTable(name="feeds")
* @ORMEntity
*/
class Feeds
{
/**
* @var integer
*
* @ORMColumn(name="id", type="integer", nullable=false)
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="feed_label", type="string", length=100, nullable=false)
*/
private $feedLabel;
/**
* @var integer
*
* @ORMColumn(name="advertiser_id", type="integer", nullable=false)
*/
private $advertiserId;
/**
* @var boolean
*
* @ORMColumn(name="active", type="boolean", nullable=false)
*/
private $active;
}
и в моем / Bundle/FeedManagerBundle/Resources/config/doctrine / Feeds.ОЗР.в формате YML
Feeds:
type: entity
table: feeds
fields:
id:
id: true
type: integer
unsigned: false
nullable: false
generator:
strategy: IDENTITY
feedLabel:
type: string
length: 100
fixed: false
nullable: false
column: feed_label
advertiserId:
type: integer
unsigned: false
nullable: false
column: advertiser_id
active:
type: boolean
nullable: false
lifecycleCallbacks: { }
и это ошибка, я получаю:
$ php app/console doctrine:generate:entities My/Bundle/FeedManagerBundle/Entity/Feeds --path=src
Generating entity "MyBundleFeedManagerBundleEntityFeeds"
[DoctrineCommonPersistenceMappingMappingException]
Invalid mapping file 'My.Bundle.FeedManagerBundle.Entity.Feeds.orm.yml' for class 'MyBundleFeedManagerBundleEntityFeeds'.
doctrine:generate:entities [--path="..."] [--no-backup] name
Я попытался изменить имя файла yml на полный путь. У меня есть также попытался изменить первую строку файла yml на полный путь, и я попытался сделать обе эти вещи одновременно. Кажется, ничего не работает , и теперь я собираюсь вытащить свои волосы со сцены. Кто-нибудь может предположить, почему это может не работать?
4 ответов
У меня была такая же проблема, но проблемы не было.
на самом деле, я хотел изменить имя сущности, то есть: My\Bundle\FeedManagerBundle\Entity\Aircaft: собирался быть моим\Bundle\FeedManagerBundle\Entity\Aircraft:
(потому что таблица была "aircaft": - S)
но я не менял имя файла. когда я меняюсь воздушный плот.ОЗР.в формате YML в aircrна корме.ОЗР.yml (с "r") команда работает!!
ответов не было после поиска в течение 5 часов...
для генерации сущностей из yml в модель.php, просто сделайте это. внимание на жирный текст ниже. Команда:
php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/
убедитесь, что ваш модель.ОЗР.файл yml находится в вашей папке
C:\xyz\abc * * AppBundle\Resources\config\doctrine* * и ваш файл yml имеет эту ссылку в кавычках, добавленных в начале кода отображения"AppBundle\Entity\Book:"
я решил эту проблему по-разному.
orm.yml
файл объекта Feeds создает проблему, поэтому я удалил его из resource -> config -> doctrine
затем я запустил php app / console doctrine:generate:entities YourBundleName
.
это работает.
если вы хотите преобразовать отображения информации в другие поддерживаемые форматы отображения с помощью doctrine:mapping:convert
задач. Замените пространство имен ниже своим собственным. Это работает 100%.
php app/console doctrine:mapping:convert --namespace="Blogger\BlogBundle\Entity\Blog" yaml src/Blogger/BlogBundle/Resources/config/doctrine