2015-08-18 16 views
6

Normal ifadeye dayalı bir girişi doğrulamanız gerekiyor.CakePHP 3.0 - Normal ifade doğrulaması

Method /^([ABCD]{2,2}[0-9]{4,4})$/i does not exist.

Ayrıca Cake 2 Documentation aksine Cake 3.0 validation Documentation normal ifadelerden hiç söz vardır:

//Validator 
$validator 
      ->notEmpty('sl_no') 
      ->add('reg_no', 'validFormat',[ 
        'rule' => '/^([ABCD]{2,2}[0-9]{4,4})$/i', 
        'message' => 'Please enter a valid serial number.' 
      ]); 

Ama aşağıdaki hatayı alıyorum.

Bu taşınmış veya değiştirilmiş mi?

+0

Uzun süre deneyin, ama sadece yerine {2,2} ve {4,4} arasında dikkat etmek yazabilirsiniz {2} ve {4} için sırasıyla tam 2 ve 4 karakterle eşleşir. –

cevap

19

işten geçtikten sonra bu

$validator 
     ->notEmpty('sl_no') 
     ->add('reg_no', 'validFormat',[ 
       'rule' => array('custom', '/^([ABCD]{2,2}[0-9]{4,4})$/i'), 
       'message' => 'Please enter a valid serial number.' 
     ]); 
+3

Ve neden böyle bir açıklama. CakePHP 3.0'da, varsayılan sağlayıcı olarak ['Validation' class] 'da açıklanan setleri (http://api.cakephp.org/3.0/class-Cake.Validation.Validation.html) kullanan bir" Validator "nesnesine sahipsiniz. Bu sınıftan, kontrol etmek için kullanılan ['custom()' yöntemi] (http://api.cakephp.org/3.0/class-Cake.Validation.Validation.html#_custom) ile ilgileniyorsanız, REGEX dizesine karşı alan. Bu nedenle, kural ismini ('custom') ve argümanını (regex dizginiz) '(' 'add' ')'' '' '' '' '' '' '' '' içindeki değer içinde belirtmeniz gerekir. – user221931

+0

Bunu DefaultPasswordHasher ile entegre etmek mümkün mü? Bu validator ile eşleştikten sonra IE bir fonksiyondan geçiyor mu? –