開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. PHP >
  4. Laravel >
  5. 【Laravel】バリデーションの拡張 応用編
no-image

【Laravel】バリデーションの拡張 応用編

こんにちは
ニシザワです。

今回は前回に書いたバリデーションの応用へんとして
もう少し複雑なバリデーションをするときの方法を紹介します。

前回記事はこちら
http://nextat.co.jp/staff/archives/124

前回書いたバリデーションの拡張は1つの変数に対してのバリデーションです。
なので、対象となる変数一つに対してカタカナチェックなどをする方法でした。

今回は、複数の変数を合わせてバリデーションをする方法です。
例えば、入力項目が2つありその二つが同じであるかをチェックする場合等です。
具体的にはメールアドレスの確認等です。
Laravelは標準でメールアドレスの確認ができるバリデーションがありますのでコードとしては必要ないと思いますが
これを拡張して他のチェック等に応用できますので知っておくと便利かと思います。

では、今回はメールアドレスの確認チェックでバリデーションを作ってみます。
モデルとコントローラーでの使い方は前回と同じなのでここでは説明を省きます。

app/start/global.php
class CheckEmailRulesValidator
{
    public function validateCheckEmailRule($attribute, $value, $params, $validator) {
        $data = $validator->getData();
        if($data['adress_1'] == $data['adrees_2']){
            return true;
        }
    }
}
Validator::extend('check_email', 'CheckEmailRulesValidator@validateCheckEmailRule');
$validator->getData()でフォームに入力された値をすべて取得することができます。
なので、今回はメールアドレスでしたが、他の入力に対するバリデーションを使う事も可能です。

本日は以上です。
最後までありがとうございました。

 
TOPに戻る