laravelバリデーションのbefore_or_equalとafter_or_equalは、5.3.25以降じゃないと使えないので、独自バリデーションで実装する
独自バリデーションルールを追加する時は、app/Providers/AppServiceProvider.phpのboot()に、Validator::extendを追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php namespace App\Providers; use Validator; // 独自バリデーション用 class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { // https://stackoverrun.com/ja/q/7416728 // before_or_equalとafter_or_equalは、5.3.25以降じゃないと使えないので、独自バリデーションで実装する Validator::extend('before_or_equal', function($attribute, $value, $parameters, $validator) { // 比較する項目が空欄なら、自動的にバリデーションOKにする $arg = $validator->getData()[$parameters[0]]; if(empty($arg)){ return true; }else{ // いきなりif文の条件文を書いて、true/falseを返す。falseだとバリデーションエラーとなる return strtotime($arg) >= strtotime($value); } }); } } |