du248227 2019-06-28 03:30
浏览 134
已采纳

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"]);

展开全部

  • 写回答

1条回答 默认 最新

  • dongyan1808 2019-06-28 09:31
    关注

    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"]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部