【问题标题】:The annotation does not exist, or could not be auto-loaded注释不存在,或无法自动加载
【发布时间】:2013-05-29 10:35:36
【问题描述】:

我对 symfony 和教义有一些奇怪的问题。将项目发送到开发服务器时出现错误:

[Doctrine\Common\Annotations\AnnotationException] [语义错误] Acme\CampaignInterfaceBundle\Entity\Campaign::$users 属性中的注释“@Doctrine\ORM\Mapping\joinTable”不存在,或无法自动加载。

代码部分在这里:

使用 Doctrine\ORM\Mapping 作为 ORM;

/**
 * @var Acme\UsersBundle\Entity\User
 * 
 * @ORM\ManyToMany(targetEntity="Acme\UsersBundle\Entity\User", inversedBy="campaigns")
 * @ORM\joinTable(name="acme.campaign_users",
 *      joinColumns={@ORM\JoinColumn(name="campaign_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
 *      )
 */
private $users;

一些命名空间问题?

【问题讨论】:

    标签: php symfony orm doctrine-orm symfony-2.1


    【解决方案1】:

    问题出在

    @ORM\joinTable(name="jcdecaux.campaign_users", ...
    

    joinTable 应该大写

    @ORM\JoinTable, ...
    

    【讨论】:

    • 我也遇到了这个问题,但这是因为“使用”语句之前错误地有一个“\”。 "使用 \Doctrine\ORM\Mapping 作为 ORM;"应该是“使用 Doctrine\ORM\Mapping 作为 ORM;”。
    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多