Laravel4、条件付きバリデーション
タグ: Laravel4
バリデーションの新しい機能が追加されました。条件付きのバリデーションです。
例えば、有料サービスに申し込んだ人だけ、カード番号入力必須にしたい場合に利用します。(まあ、Javascript利用し、見せ方を変えてあげるほうがユーザーには親切ですね。)
// 試していません。適当にタイプしたコードです。 // paid : 有料の時、チェック('1') // card_number : カード番号 $inputs = Input::only(array('paid', 'card_number'); $rules = array(); $val = Validator::make($inputs, $rules); // 通常通り、インスタンスを生成 // 条件付きバリデーション付加 $val->sometimes('card_number', 'require|numeric|size:16', function($input) { return $input->paid == '1'; // 返却値がtrueの場合のみ、このルールを適用 )); if ($val->passes()) ... // 普通どおりにバリデーション結果をチェック
複数のフィールドに条件付きバリデーションルールを適用したい場合は、最初の引数を配列にし、複数フィールドを指定します。