찾다

 >  Q&A  >  본문

laravel - larav5에서 공급자를 생성하면 인스턴스화할 수 없는 문제가 발생합니다.

larave5에서 자신만의 서비스 공급자를 생성하세요. 실행 시 다음 오류 메시지가 나타납니다. Target [AppIServicesTestServiceInterface]는 인스턴스화할 수 없습니다. 코드 구조는 다음과 같습니다. 이유 분석에 도움을 주세요.

서비스 관련 인터페이스를 저장하기 위해 앱 디렉터리에 IServices라는 디렉터리를 만들었습니다. 구현은 Services 디렉토리에 위치합니다.
그런 다음 서비스 공급자는 공급자 디렉터리에 배치됩니다.
위 단계를 완료한 후 app.php에 서비스 제공자를 등록합니다.
그런 다음 인터페이스에 따라 HomeController의 생성자를 통해 주입합니다.

실행 중에 인스턴스화할 수 없는 오류가 보고되었습니다.
이해가 안 돼요. 왜 인스턴스화할 수 없나요? 나는 이미 이 인터페이스를 구현했습니다. 그리고 등록도 됐나요? 어떤 키 링크가 잘못되었나요? 아니면 놓쳤나요? 누군가 나에게 조언을 해줄 수 있기를 바랍니다. 감사합니다!

伊谢尔伦伊谢尔伦2753일 전562

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

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 16:58:43

    버그 추적 및 서비스 제공업체를 게시하고 살펴보세요. 그렇지 않으면 아무리 훌륭하더라도 어디에서 잘못되었는지 추측할 수 없습니다. 내 직관에 따르면 아마도 app.php

    에 자신의 공급자를 추가하지 않았을 것입니다.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-16 16:58:43

    글은 정확하지만 바인딩하려는 인터페이스의 구현이 무엇인지 ioc에 알려야 합니다. l4에서는 그렇습니다. bind 方法, l5还没细看,应该也有这个方法吧。否则 laravel 就不知道该注入什么,自然光一个接口是无法实例化的了。
    应该找一个地方写上类似 App::bind('TestServiceInterface', 'TestService')

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 16:58:43

    심술궂은 질문을 하고 싶다
    인터페이스를 인스턴스화할 수 있나요?

    회신하다
    0
  • PHPz

    PHPz2017-05-16 16:58:43

    왜 작곡가를 통해 프로젝트를 다시 승인했는지 모르겠습니다. 한 번만 썼는데 괜찮 았습니다. 학습 과정에서 이전 프로젝트에서 뭔가 변경되었을 수도 있습니다. 정확히 어디에서 오류가 발생하는지 찾지 못했습니다. 후회

    회신하다
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 16:58:43

    형님 궁금해요~, 이 문제는 해결됐나요? 쓰러질 것 같아

    직접 답을 찾아본 결과 작곡가가 이상한 짓을 하고 있다는 사실이 밝혀졌습니다. coposer.json을 이해해야 할 것 같습니다

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