include $file; } }); $data = ['userId' => 'sdfdffffffffff', 'tagId' => '234535', 'distanceRequire' => 'sdfdffffffffff', 'note' => '', 'insertTime' => '1456767657', 'lastReadTime' => '1456767657']; $rules = [['tagId,userId,freeTime', 'required', 'msg' => '{attr} is required!'], ['note', 'email', 'skipOnEmpty' => false], ['insertTime', 'email', 'scene' => 'otherScene'], ['tagId', 'size', 'min' => 4, 'max' => 567], ['freeTime', 'size', 'min' => 4, 'max' => 567, 'when' => function ($data, $valid) { echo " use when pre-check\n"; // $valid is current validation instance. return true; }], ['userId', function ($value, $data) { echo " use custom validate\n"; var_dump($value, $data); echo __LINE__ . "\n"; return false; }, 'msg' => 'userId check failure!']]; echo "use ValidationTrait\n"; //$model = new DataModel($_POST,$rules); $model = new DataModel(); $model->setData($data)->setRules($rules); $model->validate(); var_dump($model->all(), $model->getErrors()); /* echo "--------------\n"; echo "use Validation\n"; $valid = \inhere\validate\Validation::make($data, $rules)->validate(); var_dump( $valid->all(), $valid->getErrors() ); */