3

SonataAdminBundle 내에서 사용하기 위해 SonataMediaBundle을 설정하고 사용하려고합니다. 나는 docs for SMB의 모든 단계를 읽고 따라야합니다. 내가 명령을 실행하면 기본적으로설치 후 매핑 예외 발생 SonataMediaBundle

php app/console sonata:easy-extends:generate SonataMediaBundle 

를이는 있어야 할 곳에 수동으로 내가 src/ 폴더로 이동 app/ 폴더에 번들을 작성합니다. 지금은 내 응용 프로그램에 액세스하려고 할 때마다 나는이 오류를 얻을 :

MappingException: The class 'Application\Sonata\UserBundle\Entity\User' was not found in the chain configured namespaces Sonata\MediaBundle\Entity

을 그리고 나는 모든 곳에서 참조를 찾고 확인하고 아무것도 발견하지 않은 이유를 모르겠어요. 어떤 문제를 해결하거나 단서를 줄 수 있습니까?

답변

3

몇 가지 사항을 읽고 시도한 후에 오류가있는 곳을 찾았습니다. 내 교리의 설정에서 내가 가진 :

orm: 
    auto_generate_proxy_classes: "%kernel.debug%" 
# auto_mapping: true 
    entity_managers: 
     default: 
      mappings: 
       ApplicationSonataMediaBundle: ~ 
       SonataMediaBundle: ~ 

auto_mapping 절을 제거함으로써, 나는 더 이상 교리의 매핑 디렉토리에 UserBundle를 등록하지 않습니다. 따라서 사용자 엔티티를 찾을 수 없습니다. 그래서 해결책은 설정에서 auto_mapping: true 주석 처리를 해제하고 entity_manager.default.mappings 부분에 주석을 달거나 섹션에 명시 적으로 사용자 번들을 지정하십시오. 그래서 첫 번째를 선택하고 내 코드는 이제 다음과 같습니다

doctrine: 
    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     entity_managers: 
      default: 
       auto_mapping: true 
       mappings: 
        ApplicationSonataMediaBundle: ~ 
        SonataMediaBundle: ~ 

auto_mapping :

orm: 
    auto_generate_proxy_classes: "%kernel.debug%" 
    auto_mapping: true 
# entity_managers: 
#  default: 
#   mappings: 
#    ApplicationSonataMediaBundle: ~ 
#    SonataMediaBundle: ~ 
0

다시 제거하고 다음 명령을 실행하십시오. php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle ... --dest=src을 잊어 버렸습니다. 파일을 이동하면 모든 네임 스페이스가 변경되지 않습니다.

+0

나는 번들을 생성 업데이 트를 업데이트 데이터베이스 스키마 --force ... 데이터베이스 스키마 성공적으로 업데이트! "5"쿼리가 실행되었습니다. 'app/cache /'폴더에서 모두 삭제하여 캐시를 지우지 만 오류가 남아 있습니다 : 'MappingException : 'Application \ Sonata \ UserBundle \ Entity \ User'클래스가 체인 구성된 네임 스페이스 Application \ Sonata \ MediaBundle \ Entity, Sonata \ MediaBundle \ Entity' 나는이 문제의 원인을 모르겠다. – Reynier

+0

composer.json으로 질문을 업데이트 할 수 있습니까? 실제로 설치 [지침] (http://sonata-project.org/bundles/media/master/doc/reference/installation.html)에 따라 진행 했습니까? : update'command는 마지막 단계 중 하나입니다 ... –

0

나는 그것이 있어야 해결책을 발견 사실이 교리에 있어야합니다, ORM, entity_managers, 기본 섹션 교리가 아니라 `#php 응용 프로그램/콘솔 교리를 : 스키마 : 당신은 내가 명령을 실행 한 후 제안