实体映射注释中的Doctrine2 @ORM

时间:2015-03-15 15:56:20

标签: php orm doctrine-orm

我是Doctrine2的新手,并使用以下命令从现有数据库创建了权限类:

.\vendor\bin\doctrine-module orm:convert-mapping --force --from-database annotation ./EXPORT/

现在我有了我的课程,他们看起来像这样:

<?php

namespace App\Model\Entity; // this line was not generated automatically

use Doctrine\ORM\Mapping as ORM;

/**
 *
 * Category
 *
 * @ORM\Table(name="category")
 * @ORM\Entity
 */
 class Category
 {

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

看起来不错,但我不明白为什么在docblocks中的每个符号之前都使用了“@ORM”。 当我创建查询时,他们不工作,直到我删除这个“@ORM”bevore每个符号。 我错过了什么? 我没有使用任何框架(Zend / Symfony ......)。我只是使用“doctrine / orm”:“〜2.4”和作曲家。

祝你好运 迈克尔

1 个答案:

答案 0 :(得分:0)

ORM引用顶部的命名空间快捷方式

use Doctrine\ORM\Mapping as ORM;

E.g。你也可以使用带有完整名称空间的Id注释:

/**
* @Doctrine\ORM\Mapping\Id 
*/

除此之外,我建议您查看注释文档以使教义正确运行

http://doctrine-common.readthedocs.org/en/latest/reference/annotations.htmlhttp://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html