問題タブ [laravel-ioc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
346 参照

laravel - リポジトリへのインジェクション

私は自分の問題について多くの質問を見つけ、すべての解決策を試しました (と思います) が、うまくいきません。おそらく、非常に簡単なものを見落としています。

Laravel 5 を使用しています。リポジトリ パターンを実装しようとしています。Eloquent モデル '\Notos\Kind' があります。

それから私はこのインターフェースを持っています:

私のリポジトリは次のようになります。

私のサービスプロバイダー:

そして、リポジトリを使用する私のコントローラー:

このプロバイダは config/app.php に登録されています

KindController@find を実行しようとすると、次のエラーが発生します。

私が間違っていることを見つけることができません。__construct(Model $kind) を __construct(Kind $kind) に変更すると完璧に動作します。

何か案は?ありがとう

0 投票する
12 に答える
103756 参照

php - Laravel 5 - インターフェイスはインスタンス化できません

この質問が何度も聞かれたことは知っていますが、どの回答も役に立ちませんでした。

Laravel 5で例外が発生しています

私が成功せずにやったこと:

  • プロバイダーに登録App\Providers\AppRepositoryProviderするapp.php
  • php artisan clear-compiled
  • MyService のリポジトリのインターフェイスを置き換えればすべてうまくいきますが、それは間違っていると感じています (IoC コンテナーで処理する必要がありますか?)。

構造:

App\Contracts\CustomModelInterface.php

アプリ\リポジトリ\CustomModelRepository.php

App\Services\MyService.php (コントローラーとリポジトリーの間にビジネス ロジック / レイヤーを保持)

App\Providers\AppRepositoryProvider.php

私のコントローラーは次のようになります。

composer.json

0 投票する
2 に答える
1374 参照

php - ログ インターフェイス コンテナ バインディング ルーメン 5.0 のオーバーライド

「storage/logs/lumen.log」から「php://stderr」に、ルーメンがログを書き込む場所をオーバーライドしようとしています。次のコードは私が現在試しているもので、期待どおりに動作しません。

エラーは発生せず、ログは引き続きデフォルトの場所 (storage/logs フォルダー) に書き込まれます。

そして私がするとき:

デフォルトの実装を取得します。

ドキュメントを誤解しましたか、それとも間違った方法でアプローチしていますか?

0 投票する
1 に答える
281 参照

laravel - Laravel IoC がインターフェースを自動的に解決しない

私はちょうどこの例を越えましたが、バインディング インターフェイスを実装に解決できません。

次のコード ファイルを用意します。

バインディングはで行われますapp/Providers/AppServiceProvider.php

MakeSomeNoiseジョブはコントローラからディスパッチされます

(*) で、Laravel がバインディングを自動的に解決することを期待していますが、そうではありません。ここでエラー、

しかし、コントローラーのコンストラクターに注入するだけで問題なく動作します。

これについて何か考えはありますか?