我对Symfony2比较陌生,到目前为止我很喜欢它--除了我一直遇到的这个问题。
可怕的(对我来说):主义:生成:实体
当我开始我的第一个Symfony2项目时,我不能让这个命令工作,最终只使用了doctrine:generate:entity,它工作得很好。
然而,这一次我试图为一个已经有数据库表的系统编写一个应用程序。我遵循了:Symfony2 Docs上的说明,它似乎都工作得很好,除了规则:generate:entities bit之外。
我有以下实体文件@ My/Bundle/FeedManagerBundle/ Entity /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;
}在My/Bundle/FeedManagerBundle/Resources/config/doctrine/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文件的第一行更改为完整路径,并且尝试同时执行这两项操作。似乎什么都不管用&现在我开始把头发拉出舞台了。有没有人能想到这可能不起作用的原因?
发布于 2013-02-28 00:30:01
将Feed.orm.yml更改为:
My\Bundle\FeedManagerBundle\Entity\Feeds:
type: entity
table: feeds
...发布于 2017-01-11 19:41:21
搜索了5个小时后,没有找到答案...
要从yml生成实体到model.php,只需执行此操作。将重点放在下面的粗体文本上。该命令为:
php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/确保model.orm.yml文件位于您的文件夹中
C:\xyz\abc**AppBundle\Resources\config\doctrine**和您的yml文件在映射代码"AppBundle\Entity\Book:“的开头用引号添加了此引用
发布于 2016-10-26 14:18:05
我用不同的方式解决了这个问题。Feed实体的orm.yml文件产生了问题,所以我从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/doctrinehttps://stackoverflow.com/questions/15117146
复制相似问题