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 ответов


изменить Feed.orm.yml в:

My\Bundle\FeedManagerBundle\Entity\Feeds:
   type: entity
   table: feeds
   ...

У меня была такая же проблема, но проблемы не было.

на самом деле, я хотел изменить имя сущности, то есть: 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