TEDASKは埼玉県川口市のフリーランスWEBエンジニアが運営するホームページです。WordPressによるウェブサイト制作からWEB制作に関するお悩み解決をお手伝いしています!

TEDASK(テダスク)

Laravel開発 エンジニア向け

laravelのサービスプロバイダーを複数のビューで利用する方法

更新日:

こんにちは。テダスクのToshiです!

今日は、このサイトでは初めて、PHPフレームワークのLaravelについての記事を書きます。

 

このサイトを見に来ている方は恐らくサービスプロバイダーがどういうものなのかが分かっていて調べているかとは思うのですが、例を挙げて説明すると、ブログのサイドバーで新着記事とかカテゴリー一覧とか表示する場合、Viewごとにコントローラーに毎回新着記事の取得とカテゴリー一覧の取得をしなければなりませんよね。

それって、同じ処理を繰り返し記述しているという、DRY原則に反するわけですね。

それを防ぐための仕組みで、このサービスプロバイダーを利用する事で、一箇所に処理を纏める事が出来ます。

で、使い方についてはこちらを参考にさせていただきました。

laravel5のサイドバーで毎回同じ情報を表示するには、各ControllerではなくAppServiceProvider.phpのbootに処理を記述する事!

このサイトでは、新たにサービスプロバイダーを作るのではなく、既存のAppServiceProvider.phpを利用するので十分という点が特に良いなと思いました。

この記事の中では

public function boot()
{
// 特定のbladeファイルを指定する
// 引き渡したい変数名と値をセットしておくと、Controllerから渡さなくてもblade上で使える!
view()->composer('include.sidebar', function($view) {
$view->with('bladeで使う変数名', なんたらテーブルのクラス名::get何かの値());
});

// 全bladeファイルで使いたい時は、こうする
//view()->share('bladeで使う変数名', なんたらテーブルのクラス名::get何かの値());

}

参考:laravel5のサイドバーで毎回同じ情報を表示するには、各ControllerではなくAppServiceProvider.phpのbootに処理を記述する事!

と書いてあって、表示するviewのテンプレートがinclude.sidebarというところなのですが、私の場合、使用するViewファイルを複数指定したくて色々試したのですが、こうすると、複数のViewファイルで読み込めるようになります。

\app\Providers\AppServiceProvider.php

View::composer(['index','post.detail','post.category','news.index','news.detail'], function ($view) {

…

  $view->with('ads',$ads)
  ->with('recommends',$recommends)
  ->with('populars',$populars);
});

View::composer()の中に、配列でカンマで区切ると指定した各ビューでサービスプロバイダーが利用出来るようになります。

因みに、参考にさせていただいたサイトのLaravelのバージョンは5.1のもののようですが、現在の最新の5.6でも問題なく動いています。

 

以上、laravelのサービスプロバイダーを複数のビューで利用する方法でした。

 

こちらの記事もおすすめです☆

WordPress勉強会

WordPress勉強会

【WordPress勉強会】第6回WordPress勉強会&もくもく会活動報告(2019/08/03)

【WordPress勉強会】第6回WordPress勉強会活動報告(2019/08/03)の記事は次のリンクからご覧いただけます。   【WordPress勉強会】第6回WordPress勉 ...

タイムチケットアワード2019

ニュース

タイムチケットアワード2019で優秀チケット賞とベストハッピーレポート賞をいただきました!

こんにちは! 埼玉県川口市でウェブエンジニアをしております、テダスクのToshi Seitoです。 2019年7月27日(土)に今年で3回になる、タイムチケットアワード2019に受賞者として参加させて ...

WordPress勉強会in埼玉

WordPress勉強会

【WordPress勉強会】第5回WordPress勉強会活動報告(2019/07/20)

【WordPress勉強会】第5回WordPress勉強会活動報告(2019/07/20)の記事は次のリンクからご覧いただけます。 【WordPress勉強会】第5回WordPress勉強会活動報告( ...

WordPress勉強会 in 埼玉

WordPress勉強会

【WordPress勉強会】第4回WordPress勉強会活動報告(2019/06/15)

【WordPress勉強会】第4回WordPress勉強会活動報告(2019/06/15)の記事は次のリンクからご覧いただけます。 【WordPress勉強会】第4回WordPress勉強会活動報告( ...

パートナー募集

ニュース

パートナー募集にWebデザイナーさんも加わりました!

こんにちは! 埼玉県川口市でウェブエンジニアとして活動しているToshi Seitoです。 今年の4月にエンジニアさんのパートナー募集を行いましたが、 パートナー募集にデザイナーさんの募集も加わりまし ...

 

 

この記事が気に入ったら
いいね ! しよう

-Laravel開発, エンジニア向け
-