Intereting Posts
Как скрыть ссылки в строке состояния браузера при наведении указателя мыши на ссылки на веб-странице? Как аннулировать кеш контейнера в Symfony2? как проверить, разрешена ли функция PHP system ()? и не отключен по соображениям безопасности Выберите 2 продукта из каждой категории в MySQL Почему мое электронное письмо все еще подбирается как спам? Использование функции mail () PHP-поиск и эхо-специфический текст PHP DOM textContent vs nodeValue? Как запустить PHP-скрипт в запланированное время Столбец бит MySql возвращает странное большое число в PHP 7.1 (не в предыдущих версиях) Как использовать транзакцию mysql в WordPress? Можно ли указать интерфейс исходящей сети для использования в PHP SoapClient? Как получить текущее время в ms в PHP? Разница между getcwd () и dirname (__ FILE__)? Что я должен использовать? PDO были затронуты строк во время выполнения оператора Извлечь имена полей формы PDF из формы PDF

Ошибка Symfony Класс XXX не найден в цепочках имен XXX

Есть еще некоторые вопросы по этому вопросу, но никто из них не был действительно полезен. Я новичок в Symfony, так что довольно сложно окунуться в нее.

Я попал в файл Client \ IntranetBundle \ LDAP \ LDAPAuthenticationProvider.php, и этот код вызывает ошибку:

$user = new LDAPUser($username); 

Я добавил, что это пространство имен, которое:

 use Client\IntranetBundle\LDAP\LDAPUser; 

LDAPUser реализует UserInterface

Ошибка, которую я получаю

 The class 'Client\IntranetBundle\LDAP\LDAPUser' was not found in the chain configured namespaces Client\ClientBundle\Entity 

Что это значит? Из того, что я читаю, это связано с отображением.

Моей доктрины orm в config.yml установлено значение:

  orm: auto_generate_proxy_classes: %kernel.debug% auto_mapping: true 

Надеюсь, вы можете мне помочь.

EDIT # 1 :

На самом деле, я узнал, что это не

 $user = new LDAPUser($username); 

Это вызывает ошибку, но именно когда я пытаюсь сохранить этот объект:

 $entityManager->persist($user); 

РЕДАКТИРОВАТЬ № 2:

Я смущен тем, что не так с отображением:

 <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Client\IntranetBundle\LDAP\LDAPUser" table="users" repository-class="Client\ClientBundle\Repository\UserRepository"> <id name="id" type="integer" column="id"> <generator strategy="AUTO" /> </id> <field name="username" column="username" type="string" length="100" /> </entity> 

Может, это потому, что я прыгаю между двумя пучками?

Solutions Collecting From Web of "Ошибка Symfony Класс XXX не найден в цепочках имен XXX"

По умолчанию функция auto_mapping ищет объекты под пространством имен Entity , поэтому, если ваша сущность не существует, Doctrine ничего об этом не знает.

Вам нужно поместить вашу сущность в пространство имен Entity или настроить Doctrine вручную, чтобы добавить ваше собственное пространство имен имен. Таким образом вы теряете функцию auto_mapping , поэтому вам нужно будет зарегистрировать каждый комплект вручную:

 orm: auto_generate_proxy_classes: %kernel.debug% entity_managers: default: mappings: MyBundle: type: annotation custom_mapping: type: annotation prefix: Client\IntranetBundle\LDAP\ dir: "%kernel.root_dir%/src/Client/IntranetBundle/LDAP/" is_bundle: false 

Как вы можете видеть, лучше разместить все под пространством имен Entity в своем комплекте и позволить Doctrine выполнять тяжелую работу.

просто чтобы помочь вам больше. Я искал повсюду, чтобы исправить эту ошибку в моем проекте.

Оказывается, моя ошибка заключалась в том, что я забыл добавить удаленные пакеты / пакеты в «vendor» внутри моего файла AppKernel.

Они не были зарегистрированы в функции registerBundles.

Надеюсь, это поможет всем вам!