首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2原则原则:生成:实体从不工作

Symfony2原则原则:生成:实体从不工作
EN

Stack Overflow用户
提问于 2013-02-28 00:26:35
回答 3查看 14.4K关注 0票数 7

我对Symfony2比较陌生,到目前为止我很喜欢它--除了我一直遇到的这个问题。

可怕的(对我来说):主义:生成:实体

当我开始我的第一个Symfony2项目时,我不能让这个命令工作,最终只使用了doctrine:generate:entity,它工作得很好。

然而,这一次我试图为一个已经有数据库表的系统编写一个应用程序。我遵循了:Symfony2 Docs上的说明,它似乎都工作得很好,除了规则:generate:entities bit之外。

我有以下实体文件@ My/Bundle/FeedManagerBundle/ Entity /Feeds.php

代码语言:javascript
复制
<?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中

代码语言:javascript
复制
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: {  }

这就是我得到的错误:

代码语言:javascript
复制
$ 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文件的第一行更改为完整路径,并且尝试同时执行这两项操作。似乎什么都不管用&现在我开始把头发拉出舞台了。有没有人能想到这可能不起作用的原因?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-28 00:30:01

Feed.orm.yml更改为:

代码语言:javascript
复制
My\Bundle\FeedManagerBundle\Entity\Feeds:
   type: entity
   table: feeds
   ...
票数 13
EN

Stack Overflow用户

发布于 2017-01-11 19:41:21

搜索了5个小时后,没有找到答案...

要从yml生成实体到model.php,只需执行此操作。将重点放在下面的粗体文本上。该命令为:

代码语言:javascript
复制
php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/

确保model.orm.yml文件位于您的文件夹中

C:\xyz\abc**AppBundle\Resources\config\doctrine**和您的yml文件在映射代码"AppBundle\Entity\Book:“的开头用引号添加了此引用

票数 1
EN

Stack Overflow用户

发布于 2016-10-26 14:18:05

我用不同的方式解决了这个问题。Feed实体的orm.yml文件产生了问题,所以我从resource -> config -> doctrine中删除了它,然后我运行了php app/console doctrine:generate:entities YourBundleName

这是可行的。

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

代码语言:javascript
复制
php app/console doctrine:mapping:convert --namespace="Blogger\BlogBundle\Entity\Blog" yaml src/Blogger/BlogBundle/Resources/config/doctrine
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15117146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档