• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

LaravelとTwigでアクティブページの判定をしよう!

2018年11月7日

  • このエントリーをはてなブックマークに追加

こんにちは、Webプログラマの篠田です。

今回は、PHPフレームワーク「Laravel 5.6」と「Twig」を使ったプログラムで、
Twig内で現在URLの値を取得する方法をご紹介します。

この記事の目次

  • 1 どういうときに「現在のURL」が必要になるか
  • 2 ベースとなるコードを用意する
  • 3 現在のURLを取得してみよう
  • 4 Twigの「match」を使って、ページを認識させる
  • 5 まとめ

どういうときに「現在のURL」が必要になるか

「現在のURL」が必要になる場面としては、表示しているページのメニューをアクティブ表示したいときではないでしょうか。

そういったときに、コントローラー側のPHPで「現在のURL」を取得して、テンプレート側に送るという仕組みは、全コントローラーに影響するので実装は現実的ではありません。

そこで、ページの構成上必要となるメニュー部分のテンプレートで「現在のURL」が取得できれば、全コントローラーに手を加える必要がなくなります。

ベースとなるコードを用意する

ベースとなる簡単なLaravelのコードを用意します。

まずは、簡単なコントローラーを作成

「artisan」コマンドを利用して、「ItemController」と「MemberController」を作成します。

1
2
$ php artisan make:controller ItemController
$ php artisan make:controller MemberController

「ItemController」と「MemberController」に「index」メソッドを用意します。

PHP
1
2
3
4
5
6
class ItemController extends Controller
{
    public function index() {
        return view('Item.index');
    }
}

PHP
1
2
3
4
5
6
class MemberController extends Controller
{
    public function index() {
        return view('Member.index');
    }
}

読み込むTwigファイルは「views/Item/index.twig」と「views/Member/index.twig」が保存してあるとします。

ルーティングには名前をつけよう

Laravelのルーティングには、別名を付けることができます。
別名をつけることで、URLが変わったり、呼び出しコントローラーが変わっても、呼び出し側に影響が出ないようにすることができます。

PHP
1
2
Route::get('/item', 'ItemController@index')->name('item.index');
Route::get('/member', 'MemberController@index')->name('member.index');

「name」にかかれている「’item.index’」や「’member.index’」が別名になります。

これで、準備が完了です。

現在のURLを取得してみよう

「現在のURL」を取得するコードは下記のようになります。

1
{{ url().current() }}

「url()」は、Laravelの「url関数」を利用しています。
本来は、引数にパス(例:’/item’)を渡すことで、完全なURL(http://から始まるURL)を作成することができます。

このままでは、「現在のURL」を取得しただけで、実際にメニューをアクティブにするためには、条件を作成する必要があります。

Twigの「match」を使って、ページを認識させる

先程、取得した「現在のURL」を利用して、現在のURLがメニューに該当するURLなのかを判定するコードを作っていきましょう。

条件式に利用するのは、Twigの「matches」です。

1
2
3
4
5
{%  if url().current() matches '{item}' %}
    商品ページです。
{% elseif url().current() matches '{member}' %}
    メンバーページです。
{% endif %}

先程の「url().current()」を使いその文字列に「'{member}’」を含んでいれば「true」という条件式を作りました。

Twigの「matches」は、正規表現を使い複雑な文字検索を可能にします。

まとめ

「現在のURL」を活用することで、簡単にアクティブページの処理を作成することができます

ただし、「現在のURL」の取得方法は、同じTwigを利用していても、フレームワークの種類によって呼び出し方が変わってきますので、注意が必要です。

 


現場の業務フローに寄り添ったWebシステムをお求めなら、私たちALAKIにご相談ください。

ALAKIは経営者様が感じている問題点と、実際にWebシステムを利用される現場スタッフ様が直面している課題を、弊社システムエンジニアが丁寧に聞き取り、お客様と共にシステムを作り上げていきます。
業務改善が実現できるWebシステムをお求めの方は、是非ALAKIにご相談ください。

・ALAKIのWebシステム開発

・ALAKIのクラウド型受発注システム

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • 13993703_xxl

    PHPテンプレートエンジンのいろは

    10 6月, 2016

  • スクリーンショット 2022-10-30 6.55.50

    Unity Netcode for GameObjects (NGO) (旧MLAPI)× Relayでマルチプレイを実装する

    30 10月, 2022

  • a80f1d6c6827958816c7034215236676_m

    Webサイトを常時SSL化する4つのポイント

    24 10月, 2017

  • Next story ブラウザから簡単にAR体験を!ARkit2を利用したWebAR
  • Previous story Laravel5.6で、cron用バッチ処理を作成する方法

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.