MappingException与Doctrine ORM - 类不存在

I am using Doctrine 2.6.2 in my PHP project. The Schema was created successfully with the ORM-Tool, but on runtime, a MappingException is thrown.

I still cannot make sense out of the Exception Error message "Class 'credentials' does not exist in ..." because I don't know about doctrines internals.

my composer.json file:

{
    "require": {
        "doctrine/orm": "^2.6.2",
        "symfony/yaml": "2.*"
    },
    "autoload": {
        "psr-0": {"": "src/"}
    }
}

I tried to change some phpdoc annotations and reset the schema multiple times.

Does someone has experienced similar issues with doctrine? I'd love some hint about this, because I'm not even sure if this problem is caused by my PHP code files or maybe by some misconfiguration of the orm tool I'm using, or most probably by something I didn't think of yet.

/**
 * @Entity @Table(name="credentials")
 */
class Credentials
{

    /** @Id @Column(type="integer") @GeneratedValue **/
    protected $id;

    /** @Column(type="string") **/
    public $Email;

    /** @Column(type="string") **/
    public $Loginname;

    /** @Column(type="string") **/
    public $EntropyString;

    /** @Column(type="string") **/
    public $AccessToken;


    public function __construct()
    {

    }

    public function getId()
    {
        return $this->id;
    }

}

Here is the full Response from apache:

Fatal error: Uncaught Doctrine\Common\Persistence\Mapping\MappingException: Class 'credentials' does not exist in F:\XAMPP\httpd.private\src\php\vendor\doctrine\persistence\lib\Doctrine\Common\Persistence\Mapping\MappingException.php:93 Stack trace: #0 F:\XAMPP\httpd.private\src\php\vendor\doctrine\persistence\lib\Doctrine\Common\Persistence\Mapping\RuntimeReflectionService.php(24): Doctrine\Common\Persistence\Mapping\MappingException::nonExistingClass('credentials')

1 F:\XAMPP\httpd.private\src\php\vendor\doctrine\persistence\lib\Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory.php(250):

Doctrine\Common\Persistence\Mapping\RuntimeReflectionService->getParentClasses('credentials')

2 F:\XAMPP\httpd.private\src\php\vendor\doctrine\persistence\lib\Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory.php(283):

Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getParentClasses('credentials')

3 F:\XAMPP\httpd.private\src\php\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadat

in F:\XAMPP\httpd.private\src\php\vendor\doctrine\persistence\lib\Doctrine\Common\Persistence\Mapping\MappingException.php on line 93

the error occurs on a call to EntityManager's Find method:

$this->credentials = $this->entityManager->Find('credentials', $result[0]["id"]);
dra8603
dra8603 让我们在聊天中继续讨论。
一年多之前 回复
drox90250557
drox90250557 所以,在设置正确的文件名后清除缓存-Credentials.php如果不能帮助,请提供doctrine.yaml
一年多之前 回复
duanchao1002
duanchao1002 我使用教义和symfony。
一年多之前 回复
duangu1645
duangu1645 你使用一些框架吗?
一年多之前 回复
douzi8112
douzi8112 我将文件名更改为“Credentials.php”后再次尝试。->相同的MappingException。
一年多之前 回复
dsgdf45654
dsgdf45654 用upletter做的-Credentials.php:)
一年多之前 回复
douyuepi6485
douyuepi6485 文件名是“credentials.php”
一年多之前 回复
douren6035
douren6035 你能显示你的类声明的文件名吗?
一年多之前 回复

1个回答

The Exception does not occur anymore after adding the fully qualified class name to the call on EntityManager's Find method:

$this->credentials = $this->entityManager->Find('Businessrelations\Database\Credentials', $result[0]["id"]);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐