如何使用命令在Symfony 3.4中生成实体?

时间:2018-12-11 08:55:39

标签: symfony doctrine-orm symfony-3.4

我已经为我的表remuneration创建了ORM文件。我已经为相同的ORM文件创建了表单类型文件。我曾经使用以下命令生成实体“ ClientRemuneration”:
php bin/console doctrine:generate:entities AppBundle/Entity/ClientRemuneration
但是,它不起作用并引发此错误:

  

类“ DatumGraph \ Spade \ MasterBundle \ Entity \ ClientRemuneration”不是   有效实体或映射的超类”。


 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

由于在类上缺少@ORM\Entity注释,Doctrine会引发您提到的异常。 有关更多信息,请查看官方的学说Symfony文档:https://symfony.com/doc/current/doctrine.html

定义真实实体:

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class ClientRemuneration extends BaseUser
{
    // ...
}

如下定义超类:

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\MappedSuperclass
 */
abstract class BaseUser
{
    // ...
}

生成实体(获取器和设置器): 如果您使用的是symfony应用程序版本> 4.0 ,则应使用bin/console make:entity --regenerate生成实体。
否则,您应该使用bin/console doctrine:generate:entities命令。

生成实体(php类): 如果您正在使用symfony应用程序版本> 4.0 ,则应使用bin/console make:entity生成实体。 否则,您应该使用bin/console doctrine:generate:èntity命令。