PHPどうも、こんにちわ。今回は、LaravelのBladeテンプレートファイル内でページ判定する方法を紹介したいと思います。テンプレートと言えば、基本的には複数のページで共通のレイアウトやメニュー等は使用する際にとても便利ですが、中には基本的には共通なんだけど、特定のページのみにクラス名を付けて少しだけスタイルを変えたいなどといったこともあるかと思います。その際に、わざわざ別テンプレートを用意するのは冗長的だし効率的ではありません。全ページ共通に読み込まれる変数を用意して、それで判別するのも面倒です。そこでBladeテンプレートファイル内でページ判定をして処理する方法を紹介したいと思います。まとめ環境なお、今回のLaravel環境は以下の通りとなります。5.4.36URLを取得してページを判別では、早速紹介していきたいと思いますが、今回はベーシックな方法であるURLを取得してページを判定する方法を紹介したいと思います。Requestファサードを使ってURLを取得LaravelのBladeテンプレート内でURLを取得する方法はヘルパー関数などを使用して取得する方法もありますがページ判定にはあまり向いていないので、今回は「Request」ファサードを使用して判別したいと思います。RequestファサードはURLの取得だけではなく、Postメソッド等で渡したデータの取り扱いなどにも使うので、Controllerでも使用することの多いLaravelを代表するファサードの1つですね。そんなLaravelを代表するファサードである「Request」ファサードには、例によってたくさんのメソッドがあります。いくつか例を挙げると下記のようなメソッドがあります。リクエスト内に特定の値が存在の有無その他のメソッドはこちらのページにリストがあるのでご参照ください。isメソッドを使ってページを判別このようにたくさんのメソッドを持つ「Request」ファサードですが、ページを判定する際に適しているメソッドが「is」メソッドになります。この「is」メソッドは、リクエストのURIが指定されたパターンに合致するかを確認できるメソッドになります。実際に「is」メソッドを使用してページ判定をする例を書いてみたいと思います。設定としては、仮に「https://example.com/about」というページがあったとして、現在のリクエストがaboutページなのかどうかを判定します。@endif123@if(Request::is('about'))//aboutページに追加したい処理等@endifこれだけですね。Requestファサードを呼び出してisメソッドを使ってパラメータに特定のパスを指定することで、現在のリクエストURIを判別して「true」か「false」で結果を返してくれます。それをif分で囲むことで判定して、trueだったら処理を追加するといった感じです。「https://example.com/page/sample」というようなもう一階層深いページであれば、下記のようにパスを指定してあげれば大丈夫です。@endif123@if(Request::is('page/sample'))//page/sampleページに追加したい処理等@endif指定したページと他のそうでないページで処理を分けたいのであれば「else」を使ってやればいいだけです。@endif12345@if(Request::is('page/sample'))//page/sampleページに追加したい処理等@else//他のpwー時に追加したい処理等@endifいたって簡単ですね。まとめということで、今回はLaravelのBladeテンプレート内でのページ判定を「Request」ファサードを使って対応する方法を紹介させていただきました。特定のページだけちょっとカスタマイズするようなケースは多いですし、私個人も頻繁に使うので覚えておくと便利です。拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。いろいろな人の話しを聞くのが好きなので、このブログを通して多くの人と繋がりが出来たら嬉しいです。noteとInstagramもやっているのでフォローしてくれたらありがたいです!noteinstagram詳しく見るプログラミングの記事一覧へ他のブログも見る人気記事2018.01.09FITNESS【ダイエット】確実に痩せたいなら、まずやるべきこと8選。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。nori-life.com。