Doctrine 不映射自己生成的实体

Posted

技术标签:

【中文标题】Doctrine 不映射自己生成的实体【英文标题】:Doctrine does not map its own generated entity 【发布时间】:2013-11-24 18:53:08 【问题描述】:

我正在努力学习教义。

我正在尝试使用最后生成的实体更新我的数据库。

我使用教义生成实体:generate:entity

这里是:

<?php

namespace NRtworks\ChartOfAccountsBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Lasttest
 *
 * @ORM\Table()
 * @ORM\Entity
 */

class Lasttest

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
private $name;


/**
 * Get id
 *
 * @return integer 
 */
public function getId()

    return $this->id;


/**
 * Set name
 *
 * @param string $name
 * @return Lasttest
 */
public function setName($name)

    $this->name = $name;

    return $this;


/**
 * Get name
 *
 * @return string 
 */
public function getName()

    return $this->name;




?>

这么基本的东西,我没有改变任何东西。

然后我想学说在我的 sql 数据库中生成表,但这里是答案:

doctrine:mapping:info -> 你没有任何映射实体

doctrine:schema:update -> 你没有要处理的元数据类

doctrine:generate:entities RandomnameBundle -> 不包含任何映射实体

有什么提示吗?

【问题讨论】:

【参考方案1】:

尝试将教义 orm 映射从 auto_mapping 更改为 manual。 示例如下:

教义: ... 形式: ... 自动映射:真

形式: 实体经理: 默认: 映射: NRtworks\ChartOfAccountsBundle:~

【讨论】:

我已经尝试过,但它没有改变任何东西 在另一个包中,我有另一个我自己构建的类,然后我自己创建了 sql 表,我可以将数据保存到其中。但同样的问题我无法生成或更新方案 我刚刚尝试了 xml、yml 和 php(每次都删除所有内容)和 mapping:info 总是为空...【参考方案2】:

http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-table

@ORM\Table 需要表名。

必需的属性:

name:表的名称

【讨论】:

我已经考虑过了,我试过了,但没有任何改变。【参考方案3】:

我没有完全找到问题,但它已经解决了

-> 我已将 Symfony 更新到最新版本

【讨论】:

以上是关于Doctrine 不映射自己生成的实体的主要内容,如果未能解决你的问题,请参考以下文章

当我为此目的创建构造函数时,如何处理 Doctrine::find 未初始化未映射的实体属性?

从父实体映射中将可嵌入字段设置为主键 - Doctrine2

Doctrine 2 OneToOne 实体映射返回空实体

Doctrine2:将具有子实体的对象映射到没有附加表的实体

Doctrine2 中的条件关联

如何在 Symfony 4 上配置 Doctrine 以使用 yaml 映射