我正在尝试实现类别和子类别结构实体,但在使用命令php app/console generate:doctrine:entities RFQIronilBundle
生成实体时,我最终会遇到此错误:
[Doctrine\Common\Annotations\AnnotationException]
[Semantical Error] Couldn't find constant production, class RFQ\IronilBundl
e\Entity\ProductionType.
我创建的ProductionType实体:
<?php
namespace RFQ\IronilBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ProductionType
*
* @ORM\Table(production-type)
* @ORM\Entity
*/
class ProductionType
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\OneToMany(targetEntity="ProductionType", mappedBy="parent")
**/
protected $children;
/**
* @ORM\ManyToOne(targetEntity="ProductionType", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
**/
protected $parent;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
如何生成我的实体以及可能导致此错误的原因? 谢谢!
答案 0 :(得分:3)
我认为这是因为您没有在表名周围使用语音标记。
@ORM\Table(production-type) // meant (constant) production minus (constant) type
你应该在哪里使用
@ORM\Table("production-type")
使用production_type
来停止在MySQL语句中围绕表名引号的需要可能更有意义。