3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ViewComposer使用時の変数上書きについて

Posted at

Laravel5系ではViewComposerを使用する事で、view(やelement)と必要なデータ設定処理を切り分ける事が出来る為Controller側からロジックを切り離せる点が魅力です。
但し、下記のように同名の変数を複数箇所で設定した際、意図しない上書きが発生するパターンがある為注意ですね。

※Laravel5.1にて試行。
※ViewComposerは公式にあるようにComposerServiceProviderを作成して設定。

同一viewへ複数ViewComposerから同名変数を設定した場合

ComposerServiceProviderにてViewComposerをview(もしくはincludeしたelement)に設定した順の最後の変数が出力されます(後勝ち)。

同一viewへControllerとViewComposerから同名変数を設定した場合

ViewComposerで設定した変数が出力されます。

viewにはControllerから、 includeしたelementにはViewComposerから同名変数を設定した場合

viewにはControllerから設定した変数、includeしたelementにはViewComposerから設定した変数が別々に出力されます(上書き無し)。

viewとincludeしたelementに、各々別のViewComposerから同名変数を設定した場合

viewとincludeしたelement各々に設定したViewComposerからの変数が別々に出力されます(上書き無し)。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?