찾다

 >  Q&A  >  본문

자동 등록 서비스 오류: ORM 엔터티에 따라 다름

저는 Symfony 3 애플리케이션을 개발 중입니다. Symfony 프로파일러 로그에 다음 내용이 나와 있습니다.

으아아아

그러나 이는 단순한 ORM Bean입니다.

으아아아

이 문제를 어떻게 해결해야 하나요? services.yaml에서 ORM 엔터티를 서비스로 선언해야 합니까? 그렇다면 어떻게 해야 합니까?

UPDATE 실제로 내 항목은 하위 디렉터리에 있습니다. 내 질문을 수정했습니다.

service.yaml에서 다음을 시도했습니다.

으아아아

...하지만 효과는 없습니다.

P粉872182023P粉872182023404일 전820

모든 응답(1)나는 대답할 것이다

  • P粉281089485

    P粉2810894852023-11-06 19:06:16

    엔터티를 생성자 매개변수로 사용하는 서비스 자동 등록 클래스가 있나요?

    여기에 문제가 있습니다.

    이 관련 클래스가 실제로 서비스인지 아니면 항상 직접 인스턴스를 생성하는 일반 객체인지 스스로에게 물어봐야 합니다.

    컨테이너를 통해 서비스로 사용되지 않는 경우 다음 두 가지 옵션이 있습니다.

    다음과 같은 전역 패턴을 통해 이 클래스를 제외할 수 있습니다.

    으아악

    또는 구성에서 다음 매개변수를 설정할 수 있습니다.

    으아악

    이 옵션을 사용하면 컨테이너는 서비스로 사용할 수 없는 매개변수를 사용하여 서비스 클래스를 생성하려고 시도하지 않으며 결정적인 오류가 발생합니다. SF4의 기본 설정입니다.

    이 오류를 유발하는 좋은 예는 생성자에서 엔터티를 페이로드로 사용하는 사용자 정의 이벤트 클래스입니다.

    으아악

    이제 이 파일을 특별히 제외하지 않으면 컨테이너는 자동으로 해당 파일을 서비스로 등록하려고 시도합니다. 솔리드 바디가 제외되므로 자동 연결이 불가능합니다. 그러나 3.4에는 이 경고를 발생시키는 대체 메커니즘이 있습니다. strict_mode가 활성화되면 이벤트를 서비스로 사용할 수 없으며 서비스로 사용하려고 하면 오류가 발생합니다.

    회신하다
    0
  • 취소회신하다