CakePHP3でバーチャルフィールドの作成

カテゴリ:実物コーディングチャレンジ

公開日:2020.06.15 最終更新日:2020.06.16
このエントリーをはてなブックマークに追加

今年からinglowで開発担当をしています寺澤です。今回はCakePHP3でバーチャルフィールドを作ってみようと思います。

★環境

  • PHP 7.4.6
  • CakePHP 3.8.*
  • MySQL  5.0.2

バーチャルフィールドとは

CakePHP3のモデル、Entityの機能として仮想フィールドの機能があります。 テーブルの項目をそのまま表示させるのではなく、少し加工して表示させるときに便利です。

たとえば、郵便番号と都道府県と住所をビューで文字列連結して表示させると結構めんどくさいですよね。 しかもその箇所がたくさんあったら‥‥。 そんなときにEntityで一度作ってしまえばビューの表示が簡単になります。

制作

バーチャルフィールドの生成

protected $_virtual = []の中に追加したいカラムを入力すると、

コントローラーで取得したときに一緒に生成したカラムも取得できます。

取得結果

試しにdd関数でカラムを取得してみましょう

あとはviewでforeachなどで配列を回せば普通のカラムと同じように表示をさせることができます

おわりに

今回の内容だとそこまで利便性が感じられなかったかもしれません。

しかし、viewなどで文字列連結を作ると、コードの可読性が悪くなる面があります。

あまり使わないところでちゃちゃっと作成して、よく見るところは綺麗にしてあげることでミスなども防げるのではないかと思います。

一覧へ戻る