にプリミティブを結合:LaravelはLaravel 5ドキュメントを1としてアレイ
$this->app->when('App\Http\Controllers\UserController')
->needs('$variableName')
->give($value);
を使用すると、コントローラに単一の値を結合することを可能にします。
複数のサービスプロバイダを同じ$ variableNameにバインドしたいのですが、2番目のプロバイダが最初のプロバイダの値をオーバーライドする代わりに、両方の値を自動的に配列に格納することは可能ですか?例えば
:
Provider1:
$this->app->when('App\Http\Controllers\UserController')
->needs('$variableName')
->give('Value 1');
Provider2:
$this->app->when('App\Http\Controllers\UserController')
->needs('$variableName')
->give('Value 2');
その後、UserControllerで、
に私がする結果が欲しい:
var_dump($variableName)
として['Value 1', 'Value 2']
これは可能ですか?もしそうでなければ、達成しようとしていることに対する回避策がありますか?
これらのプロバイダーの詳細と、なぜ分離が必要なのかを確認できますか?この場合、プロバイダーが正しく使用されない場合や、タグ付けなど、他の実装が有用な場合があるように見えます。 – Ohgodwhy
@Ohgodwhy私はLaravelプロジェクトのための "モジュール"システムを開発しています。各モジュールにはそれぞれ独自のプロバイダがあり、私はこのメソッドを使用して、別々のモジュールが情報を相互に送信できるようにしました。例えば、メディアモジュールとニュースモジュールの両方が、ページモジュール内のコントローラに情報を送信したいとすると、ページモジュールは、両方のモジュールから情報をアレイで受け取ることになる。 – zuc0001
サービスプロバイダを使うのが初めてなので、私の方法がベストではなかったかもしれません! – zuc0001