suchen

Heim  >  Fragen und Antworten  >  Hauptteil

laravel – Beim Erstellen eines Anbieters in larav5 tritt das Problem auf, dass er nicht instanziiert werden kann

Erstellen Sie Ihren eigenen Dienstanbieter in larave5. Beim Ausführen wird eine Fehlermeldung angezeigt: Ziel [AppIServicesTestServiceInterface] ist nicht instanziierbar. Die Codestruktur ist wie folgt. Bitte helfen Sie bei der Analyse des Grundes:

Ich habe im App-Verzeichnis ein Verzeichnis mit dem Namen „IServices“ erstellt, um meine dienstbezogenen Schnittstellen zu speichern. Die Implementierungen werden im Services-Verzeichnis abgelegt.
Anschließend werden die Dienstanbieter im Anbieterverzeichnis abgelegt.
Registrieren Sie nach Abschluss der oben genannten Schritte den Dienstanbieter in app.php.
Fügen Sie es dann je nach Schnittstelle über den Konstruktor in HomeController ein:

Während der Ausführung wurde ein Fehler gemeldet, der nicht instanziiert werden kann.
Ich verstehe nicht, warum kann es nicht instanziiert werden? Ich habe diese Schnittstelle bereits implementiert. Und auch registriert? Welcher Schlüssellink ist falsch? Oder verpasst? Ich hoffe, jemand kann mir einen Rat geben, danke!

伊谢尔伦伊谢尔伦2749 Tage vor556

Antworte allen(5)Ich werde antworten

  • 曾经蜡笔没有小新

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

    贴出来你的bug trace和service provider出来看看 否则再牛的大神也猜不出来你哪里错了。 直觉告诉我你应该是app.php里面没有加你自己的provider

    Antwort
    0
  • 巴扎黑

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

    写法是没错的,但是你得告诉 ioc 你绑定的这个接口的实现是什么,l4 中是 bind 方法, l5还没细看,应该也有这个方法吧。否则 laravel 就不知道该注入什么,自然光一个接口是无法实例化的了。
    应该找一个地方写上类似 App::bind('TestServiceInterface', 'TestService')

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 16:58:43

    我想弱弱的问一句
    接口可以被实例化吗?

    Antwort
    0
  • PHPz

    PHPz2017-05-16 16:58:43

    我也不知道为什么重新通过composer了一个项目,按照之前的写了一次,就可以了。有可能是我之前的项目在学习过程中改动了什么地方吧。没有检查出来具体错在什么位置上。遗憾

    Antwort
    0
  • 过去多啦不再A梦

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

    wonder哥~,这个问题解决没?我已经快崩溃了

    经过自己搜索答案,原来是composer在搞怪。看来得去了解coposer.json了

    Antwort
    0
  • StornierenAntwort