2013-02-27 55 views
7

我对Symfony2比较新,迄今为止都很喜欢它 - 除了这个问题,我一直在反对。Symfony2学说主义:生成:实体从来没有工作

可怕的(对我):理论:生成:实体

当我开始我的第一个项目的Symfony2我无法得到该命令的工作,最终只用学说:生成:实体而不是其工作的罚款。

但是,这次我试图为已经有数据库表的系统编写应用程序。我按照指示:Symfony2 Docs这似乎都工作正常,除了像通常的原则:生成:实体位。

我有以下实体文件@我/包/ FeedManagerBundle /实体/ Feeds.php

<?php 

namespace My\Bundle\FeedManagerBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Feeds 
* 
* @ORM\Table(name="feeds") 
* @ORM\Entity 
*/ 
class Feeds 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="feed_label", type="string", length=100, nullable=false) 
    */ 
    private $feedLabel; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="advertiser_id", type="integer", nullable=false) 
    */ 
    private $advertiserId; 

    /** 
    * @var boolean 
    * 
    * @ORM\Column(name="active", type="boolean", nullable=false) 
    */ 
    private $active; 


} 

,在我的/包/ FeedManagerBundle /资源/配置/教义/ Feeds.orm.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 "My\Bundle\FeedManagerBundle\Entity\Feeds" 



    [Doctrine\Common\Persistence\Mapping\MappingException]                   
    Invalid mapping file 'My.Bundle.FeedManagerBundle.Entity.Feeds.orm.yml' for class 'My\Bundle\FeedManagerBundle\Entity\Feeds'. 



doctrine:generate:entities [--path="..."] [--no-backup] name 

我试图改变的YML文件的名称完整的路径。我也尝试将yml文件的第一行更改为完整路径,并且我已经尝试在同一时间执行这两个操作。似乎没有什么工作&现在我正在拉我的头发舞台。任何人都可以想到为什么这可能无法正常工作?

回答

13

更改Feed.orm.yml到:

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

开头添加的引号中添加 - 哇,我尝试了除此之外的所有内容。我甚至尝试过我的/ Bundle/FeedManagerBundle/Entity/Feeds:谢谢! – someuser 2013-02-27 16:32:14

+0

@l_t很高兴问题解决了 – seferov 2013-02-27 16:38:00

+0

与我的XML文件映射一样。我有<实体名称=“城市”表=“城市”>它给出了同样的错误。我将它更改为并且工作正常。谢谢! – a4bike 2015-03-10 21:18:25

1

我有同样的问题,但问题是不存在的。

其实,我想改变的实体,即名:我的\包\ FeedManagerBundle \实体\ Aircaft:将是我的\包\ FeedManagerBundle \实体\飞机:

(因为表是“aircaft”:-S)

但我没有更改文件名。 当我更改aircaft.orm.yml to airc r aft.orm.yml(带“r”) 该命令的作品!

0

我以不同的方式解决了这个问题。 orm.yml饲料实体文件正在创建问题,所以我从resource -> config -> doctrine删除它,然后我跑了PHP应用程序/控制台​​。

This Works。

如果您想使用doctrine:mapping:convert任务将映射信息转换为其他支持的映射格式。用你自己的替换下面的命名空间。它工作100%。

php app/console doctrine:mapping:convert --namespace="Blogger\BlogBundle\Entity\Blog" yaml src/Blogger/BlogBundle/Resources/config/doctrine 
1

回答未发现任何正在寻找5小时后...

为了从阳明实体model.php,只是这样做。关注下面的粗体文字。该命令是:

php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/ 

确保您model.orm.yml文件是文件夹中

C:\某某\ ABC **的appbundle \资源\ CONFIG \学说**和您的YML文件有此引用在映射代码“AppBundle \ Entity \ Book:

相关问题