@@ -33,11 +33,7 @@ public function isArray(): bool
3333
3434 public function getType (): string
3535 {
36- if ($ this ->idAttributeType === 'string ' ) {
37- return self ::TYPE_STRING ;
38- }
39-
40- return self ::TYPE_INTEGER ;
36+ return self ::TYPE_STRING ;
4137 }
4238
4339 public function isValid ($ value ): bool
@@ -46,29 +42,26 @@ public function isValid($value): bool
4642 return false ;
4743 }
4844
49- if ($ this ->idAttributeType === ' string ' ) {
50- return preg_match ( ' /^[a-f0-9]{24}$/i ' , $ value ) === 1 ;
51- } elseif ( $ this -> idAttributeType === ' int ' ) {
45+ switch ($ this ->idAttributeType ) {
46+ case Database:: VAR_ID_MONGO :
47+ return preg_match ( ' /^[a-f0-9]{24}$/i ' , $ value ) === 1 ;
5248
53- if (gettype ($ value ) !== 'integer ' ) {
54- return false ;
55- }
49+ case Database::VAR_ID_INT :
50+ if (gettype ($ value ) !== 'integer ' ) {
51+ return false ;
52+ }
5653
57- $ validator = new Integer ();
58- if (!$ validator ->isValid ($ value )) {
59- return false ;
60- }
54+ $ validator = new Integer (loose: true );
55+ if (!$ validator ->isValid ($ value )) {
56+ return false ;
57+ }
6158
62- $ start = ($ this ->primary ) ? 1 : 0 ;
59+ $ start = ($ this ->primary ) ? 1 : 0 ;
60+ $ validator = new Range ($ start , Database::BIG_INT_MAX , Database::VAR_INTEGER );
61+ return $ validator ->isValid ($ value );
6362
64- $ validator = new Range ($ start , Database::BIG_INT_MAX , Database::VAR_INTEGER );
65- if (!$ validator ->isValid ($ value )) {
63+ default :
6664 return false ;
67- }
68-
69- return true ;
7065 }
71-
72- return false ;
7366 }
7467}
0 commit comments