カスタムバリデーションルールの作成と利用カスタムバリデーションルールを作る手順は以下です。コマンドで枠になるクラスファイルを作るクラスにバリデーションロジックを組み込むコントローラクラスにバリデーションクラスを組み込むさて。コマンドで枠になるクラスファイルを作る今回は試しに以下のルールを作ってみます。氏名は「姓1文字以上」+「1つの空白」+「名1文字以上」の構造である。ルールクラスの名前は「KanjiName」にします。KanjiNameこれで、「app\Rules」フォルダに「KanjiName.php」ができます。生成される枠はこんな感じ。}}クラスにバリデーションロジックを組み込む生成されたクラスの「passes」メソッドにチェックロジックを書きます。「message()」メソッドのエラーメッセージを適切なものに書き換えます。修正したカスタムバリデーションクラスはこうです。'氏名は「姓1文字以上+空白+名1文字以上」の形式である必要があります。}}UNICODEの全角漢字・ひらがなにマッチする正規表現は、こちらを参考にしました。UTF-8のコード表を見て自分でコードを拾うのは、とても面倒なので、助かります。tama-san.comこういう複雑な正規表現は「regex」ルールで書くと、ソースがごちゃごしゃしますから、カスタムルール化に適したお題になりました。コントローラクラスにバリデーションクラスを組み込むコントローラクラスに組み込みます。これを利用する場合は、コントローラクラスの書き方がちょっと変わります。カスタムルールのクラスオブジェクトを「new」してやる必要があるので、単純に文字列の中で「|」で連結する手段はとれません。KanjiName],みたいに、配列渡しをする必要があります。その部分と、あとカナ名の部分も同様に「姓+空白+名」の形式のみOKにするルールに書き換えたコントローラクラスはこんな感じです。