我使用实体生成器制作实体,但现在当我尝试命令时:
php app/console doctrine:schema:update --force
它抛出以下内容:
No Metadata Classes to process.
那么,我做错了什么?
PS。我也尝试自己编写并使用以下命令:
php app/console doctrine:generate:entities AppBundle/Entity/DataPage
我看到了这个错误:
[Doctrine\ORM\Mapping] \MappingException] Class "AppBundle\Entity\DataPage" is not a valid entity or mapped super class.
所以有代码:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* DataPage
*/
class DataPage
{
/**
* @var integer
*/
private $id;
/**
* @var string
*/
private $sisalto;
/**
* @var string
*/
private $nimi;
}
修改 所以,我尝试为there的示例代码制作此代码 我也看到了同样的错误:
[Doctrine\ORM\Mapping \MappingException]
Class "AppBundle\Entity\Product" is not a valid entity or mapped superclass.
答案 0 :(得分:0)
/**
* DataPage
*/
class DataPage
[...]
应该是
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="data_page")
*/
[...]
这只是第一步,而不是必须注释要在db上显示的实体的每个字段。
请看一下here
答案 1 :(得分:0)
我不确定这是否有助于其他任何人,但我收到了以下错误的symfony Doctrine产品示例代码:
[Doctrine\ORM\Mapping\MappingException]
Class "AppBundle\Entity\Product" is not a valid entity or mapped super class.
然后我再看一下我的评论部分,这是一个丢失的星号,如下面的代码示例[以下是错误的]:
/*
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
在第1行注意,最后应该有一个额外的'*'。我绝对不认为这根本不重要,但显然确实如此。另外,请勿在注释前使用制表符。 Doctrine小组也解决了这个问题。