@@ -701,46 +701,52 @@ public function fieldValidation($schema, $fieldName, array $metaData, $primaryKe
701701 return false ;
702702 }
703703
704- $ rule = false ;
704+ $ rules = [] ;
705705 if ($ fieldName === 'email ' ) {
706- $ rule = 'email ' ;
706+ $ rules [ 'email ' ] = [] ;
707707 } elseif ($ metaData ['type ' ] === 'uuid ' ) {
708- $ rule = 'uuid ' ;
708+ $ rules [ 'uuid ' ] = [] ;
709709 } elseif ($ metaData ['type ' ] === 'integer ' ) {
710- $ rule = 'integer ' ;
710+ $ rules [ 'integer ' ] = [] ;
711711 } elseif ($ metaData ['type ' ] === 'float ' ) {
712- $ rule = 'numeric ' ;
712+ $ rules [ 'numeric ' ] = [] ;
713713 } elseif ($ metaData ['type ' ] === 'decimal ' ) {
714- $ rule = 'decimal ' ;
714+ $ rules [ 'decimal ' ] = [] ;
715715 } elseif ($ metaData ['type ' ] === 'boolean ' ) {
716- $ rule = 'boolean ' ;
716+ $ rules [ 'boolean ' ] = [] ;
717717 } elseif ($ metaData ['type ' ] === 'date ' ) {
718- $ rule = 'date ' ;
718+ $ rules [ 'date ' ] = [] ;
719719 } elseif ($ metaData ['type ' ] === 'time ' ) {
720- $ rule = 'time ' ;
720+ $ rules [ 'time ' ] = [] ;
721721 } elseif ($ metaData ['type ' ] === 'datetime ' ) {
722- $ rule = 'dateTime ' ;
722+ $ rules [ 'dateTime ' ] = [] ;
723723 } elseif ($ metaData ['type ' ] === 'timestamp ' ) {
724- $ rule = 'dateTime ' ;
724+ $ rules [ 'dateTime ' ] = [] ;
725725 } elseif ($ metaData ['type ' ] === 'inet ' ) {
726- $ rule = 'ip ' ;
726+ $ rules [ 'ip ' ] = [] ;
727727 } elseif ($ metaData ['type ' ] === 'string ' || $ metaData ['type ' ] === 'text ' ) {
728- $ rule = 'scalar ' ;
728+ $ rules ['scalar ' ] = [];
729+ if ($ metaData ['length ' ] > 0 ) {
730+ $ rules ['maxLength ' ] = [$ metaData ['length ' ]];
731+ }
729732 }
730733
731- $ allowEmpty = false ;
732734 if (in_array ($ fieldName , $ primaryKey )) {
733- $ allowEmpty = 'create ' ;
735+ $ rules [ ' allowEmpty ' ] = [ 'create ' ] ;
734736 } elseif ($ metaData ['null ' ] === true ) {
735- $ allowEmpty = true ;
737+ $ rules ['allowEmpty ' ] = [];
738+ } else {
739+ $ rules ['requirePresence ' ] = ['create ' ];
740+ $ rules ['notEmpty ' ] = [];
736741 }
737742
738- $ validation = [
739- 'valid ' => [
743+ $ validation = [];
744+ foreach ($ rules as $ rule => $ args ) {
745+ $ validation [$ rule ] = [
740746 'rule ' => $ rule ,
741- 'allowEmpty ' => $ allowEmpty ,
742- ]
743- ];
747+ 'args ' => $ args
748+ ];
749+ }
744750
745751 foreach ($ schema ->constraints () as $ constraint ) {
746752 $ constraint = $ schema ->getConstraint ($ constraint );
0 commit comments