検索

ホームページ  >  に質問  >  本文

laravel - larav5でプロバイダーを作成するとインスタンス化できないという問題が発生する

larave5 で独自のサービス プロバイダーを作成します。実行すると、次のエラー メッセージが表示されます: ターゲット [AppIServicesTestServiceInterface] はインスタンス化できません。コード構造は次のとおりです。理由の分析にご協力ください:

サービス関連のインターフェイスを保存するために、アプリ ディレクトリに IServices という名前のディレクトリを作成しました。実装は Services ディレクトリに配置されます。
次に、サービス プロバイダーが Providers ディレクトリに配置されます。
上記の手順が完了したら、app.php にサービスプロバイダーを登録します。
次に、インターフェイスに応じて、HomeController のコンストラクターを通じてそれを注入します。
実行中に、インスタンス化できないエラーが報告されました。 分かりません。なぜインスタンス化できないのでしょうか?このインターフェースはすでに実装しています。そして登録もされていますか?どのキーリンクが間違っていますか?それとも見逃しましたか?誰かが私にアドバイスをくれることを願っています、ありがとう!

伊谢尔伦伊谢尔伦2749日前552

全員に返信(5)返信します

  • 曾经蜡笔没有小新

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

    バグ トレースとサービス プロバイダーを投稿して見てください。そうしないと、どんなに優れていても、どこで間違ったのかを推測することはできません。 私の直感では、おそらく app.php に独自のプロバイダーを追加していないのではないかと思われます

    返事
    0
  • 巴扎黑

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

    の記述は正しいですが、l4 ではバインドされているインターフェースの実装が何であるかを ioc に伝える必要があります。l5 では bind メソッドを詳しく見ていないので、それもあるはずです。この方法。そうしないと、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

    お兄さん、不思議ですね~、この問題は解決しましたか?倒れそう

    自分で答えを探した結果、composer が何か奇妙なことをしていることが判明しました。 coposer.jsonを理解する必要があるようです

    返事
    0
  • キャンセル返事