laravel - larav5でプロバイダーを作成するとインスタンス化できないという問題が発生する
伊谢尔伦
伊谢尔伦 2017-05-16 16:56:43
0
5
550

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(5)
曾经蜡笔没有小新

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

いいねを押す +0
巴扎黑

の記述は正しいですが、l4 ではバインドされているインターフェースの実装が何であるかを ioc に伝える必要があります。l5 では bind メソッドを詳しく見ていないので、それもあるはずです。この方法。そうしないと、laravel は何を注入すればよいのか分からず、自然光のインターフェイスをインスタンス化できません。
App::bind('TestServiceInterface', 'TestService')

のようなものを書く場所を見つける必要があります。
いいねを押す +0
phpcn_u1582

ちょっと質問したいんですが
インターフェイスはインスタンス化できますか?

いいねを押す +0
PHPzhong

一度書いただけで問題はなかったのに、なぜプロジェクトの作曲家に再合格したのかわかりません。以前のプロジェクトで学習の過程で何かが変更された可能性があります。エラーがどこにあるのか正確にはわかりませんでした。ごめんなさい

いいねを押す +0
过去多啦不再A梦

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート