Я использую Doctrine 2.6.2 в своем проекте PHP. Схема была успешно создана с помощью ORM-Tool, но во время выполнения создается исключение MappingException.
Я до сих пор не могу понять смысл сообщения об ошибке исключения «Учетные данные класса не существуют в ...», потому что я не знаю о внутренних компонентах доктрин.
мой файл composer.json:
{
"require": {
"doctrine/orm": "^2.6.2",
"symfony/yaml": "2.*"
},
"autoload": {
"psr-0": {"": "src/"}
}
}
Я пытался изменить некоторые аннотации phpdoc и несколько раз сбросить схему.
Кто-нибудь сталкивался с подобными проблемами с доктриной? Мне бы хотелось получить подсказку по этому поводу, потому что я даже не уверен, вызвана ли эта проблема моими файлами кода PHP или, возможно, какой-то неправильной настройкой инструмента orm, который я использую, или, скорее всего, что-то, о чем я не думал еще.
/**
* @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;
}
}
Вот полный ответ от 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
ошибка возникает при вызове метода Find EntityManager:
$this->credentials = $this->entityManager->Find('credentials', $result[0]["id"]);
имя файла "credentials.php"
сделайте это с помощью upletter - Credentials.php :)
я попробовал еще раз после изменения имени файла на «Credentials.php». -> то же MappingException.
вы используете какой-то фреймворк?
я использую доктрину и symfony.
поэтому очистите кеш после того, как вы установите правильное имя файла - Credentials.php, не могли бы вы предоставить доктрину.yaml, если это не поможет
Давайте продолжить обсуждение в чате.






Исключение больше не возникает после добавления полного имени класса к вызову метода Find EntityManager:
$this->credentials = $this->entityManager->Find('Businessrelations\Database\Credentials', $result[0]["id"]);
Вы можете показать имя файла, в котором объявлен ваш класс?