Aib \ PlatformBundle \ Entity \ User.php에 엔티티 클래스가 있습니다.
폼 클래스를 만드는 데 아무런 문제가 없었습니다.
php app / console doctrine : generate : form AibPlatformBundle : User
이제 네임 스페이스를 Aib \ PlatformBundle \ Entity \ Identity \ User로 변경했지만 작업으로 양식을 생성하려고 할 때 이전에 다음과 같이 말했습니다.
“Class Aib \ PlatformBundle \ Entity \ User는 유효한 엔티티 또는 매핑 된 수퍼 클래스가 아닙니다.”
다음은 파일 내용입니다.
<?php
namespace Aib\PlatformBundle\Entity\Identity;
use Doctrine\ORM\Mapping as ORM;
/**
* Aib\PlatformBundle\Entity\Identity\User
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Aib\PlatformBundle\Entity\Identity
\UserRepository")
*/
class User
{
...
어떤 생각?
심포니 2.0.4
답변
이 문제가 발생했습니다- * @ORM\Entity
아래와 같은 주석을 잊지 마십시오 .
/**
* Powma\ServiceBundle\Entity\User
*
* @ORM\Entity
* @ORM\Table(name="users")
*/
답변
어제이 문제가 있었고이 스레드를 찾았습니다. 새 번들 (예 : MyFooBundle / Entity / User.php)에서 매핑으로 엔터티를 생성하고 문서에 따라 모든 구성을 수행했지만 앱을로드하려고 할 때 위에서 동일한 오류가 발생했습니다.
결국 나는 AppKernel에서 MyFooBundle을로드하지 않는다는 것을 깨달았습니다.
new My\FooBundle\MyFooBundle()
이를 디버깅하는 가장 좋은 방법은 다음 명령을 실행하는 것입니다.
app/console doctrine:mapping:info
답변
config.yml 파일을 확인하십시오. 다음과 같은 내용이 포함되어 있어야합니다.
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
types:
json: Sonata\Doctrine\Types\JsonType
orm:
auto_generate_proxy_classes: %kernel.debug%
# auto_mapping: true
entity_managers:
default:
mappings:
FOSUserBundle: ~
# ApplicationSonataUserBundle: ~
YourUserBundle: ~
SonataUserBundle: ~
매핑 목록에 고유 한 번들을 추가합니다.
답변
false
두 번째 매개 변수로 전달하여이 문제를 해결 했습니다 Doctrine\ORM\Configuration::newDefaultAnnotationDriver
.
Google과 소스 코드를 파헤치는 데 시간이 걸렸습니다.
레거시 코드를 사용해야했기 때문에 Symfony 설치와 관련이없는 다른 디렉토리를 가리키는 매핑을 사용했기 때문에 제 경우는 일종의 특별했습니다.
레거시 엔티티를 리팩터링했고 작동을 멈췄습니다. 그들은 @Annotation
대신 을 사용 @ORM\Annotation
했으므로 리팩토링 후 단순히 메타 데이터를 읽지 못했습니다. 간단한 주석 판독기를 사용하지 않으면 모든 것이 정상인 것 같습니다.
답변
제 경우에는 서버 캐시를 eAccelerator 에서 APC 로 변경하여 문제가 해결되었습니다 . 분명히 eAccelerator는 주석을 깨는 파일에서 모든 주석을 제거합니다.
답변
을 (를) $useSimpleAnnotationReader=false
만들 때 설정하여이 문제를 해결 했습니다 MetaDataConfiguration
.
답변
Mark Fu와 mogoman에게 큰 thx
나는 그것이 config.yml 어딘가에 있어야한다는 것을 알았고 …
app/console doctrine:mapping:info
정말 도움이되었습니다!
사실,이 명령은 단순히 오류에서 멈 춥니 다. 피드백은 없지만 모든 것이 정상이면 나열된 모든 엔티티를 볼 수 있어야합니다.