CakePHP3のFormクラスとカスタムバリデーションを使ってファイルアップロード機能を構築する
- CakePHP
CakePHPでWebアプリケーションを構築していると、直接モデルとは関係のない(データベースを絡めない)フォームとバリデーションを用いた機能一式が必要になる時があります。そこで今回は、CakePHP3の「Formクラス」「カスタムバリデーション」を用いて、ファイルのアップロード機能を構築します。
CakePHPでWebアプリケーションを構築していると、直接モデルとは関係のない(データベースを絡めない)フォームとバリデーションを用いた機能一式が必要になる時があります。そこで今回は、CakePHP3の「Formクラス」「カスタムバリデーション」を用いて、ファイルのアップロード機能を構築します。
大抵のPHPフレームワークには、簡単に認証機能(ログインやログアウト)を構築できる仕組みが備わっており、CakePHPにも「認証コンポーネント」という、認証に関する処理を扱うコンポーネントが用意されているので、それを使って素早く認証機能を構築していきます。
「どうも、CakePHP3 ビフォワーアフターのお時間です。」個人的にはテンプレートファイルにゴリゴリPHPが記述されているのが好きではなかったりします。そこで今回は、これらFormHelperでのフォーム生成部分を、ViewCell(ビューセル)を使ってテンプレートから切り離したいと思います。
CakePHP3には、フォームを作成する際にFormHelperという機能を使うと、フォーム作成が簡単に行えます。直接HTMLのFORMを書かなくても必要な制約をつけた上で生成してくれるので実装漏れも防げて幸せになれます。今回はCakePHP3のFormHelperの入門を行い、その後で、フォームHTMLを独自テンプレートで出力するまでを行います。
CakePHPを使ってWEBアプリケーションを構築する際に避けて通れないのが「アソシエーション」という機能です。この機能はモデル自体をつなぐ(関連付ける)事でテーブルのリレーションを簡単に行えるようにするものですが、要するにリレーションです。アソシエーションに関してのイメージ、考え方も含めて使い方を解説します。
CakePHP3のクエリビルダーの記法をここにまとめています。CakePHP3はバージョンによって多少の違いがあります。ここに記載されているのはCakePHP3.5時点での記法です。