【CakePHP3】データベースを使用せずにModelのバリデーションだけ使用する方法

CakePHP3のModelは結構使いやすいのですが、データベースを使用せずにバリデーション機能を使いたいといったことがたまにあります。

そこで、いくつかやり方を見つけたのでまとめてみようと思います。

バリデーションだけ使用したい場合

こんな感じにModelを使わずバリデーションだけ使うことができます。

ただこのやり方だと、エラーチェックはできるのですが、Entityを生成しているわけではなくエラーメッセージを生成しているので、FormHelperを使って画面上にエラーメッセージを表示することができません。

おすすめなやり方

下記ファイルをつくります。初期状態だとFormディレクトリが無いのでsrc直下にFormディレクトを作ります。

app/src/Form/ContactForm.php

今までは、Modelを作ってtabelをfalseにして使用する方法がありましたが、CakePHP3からはこのような書き方ができるようになっているようです。

呼び出し方法

呼び出し方法はModelの使い方と似ています。

Controller

View

Viewについても通常の使い方ができます。

まとめ

使い方はとても簡単ですね。ただ、あまり使わないやり方かもしれないので忘れそうですが、CakePHP3系もけっこう使いやすくなってきましたね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です