语义错误 - 无法找到常量X,类...错误

时间:2014-07-24 16:46:42

标签: php entity-framework symfony doctrine-orm

我正在尝试实现类别和子类别结构实体,但在使用命令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;
    }
}

如何生成我的实体以及可能导致此错误的原因? 谢谢!

1 个答案:

答案 0 :(得分:3)

我认为这是因为您没有在表名周围使用语音标记。

@ORM\Table(production-type) // meant (constant) production minus (constant) type

你应该在哪里使用

@ORM\Table("production-type")

使用production_type来停止在MySQL语句中围绕表名引号的需要可能更有意义。