FuelPHP - Doğrulama

Validationbir web uygulamasında sık ve en çok tekrarlanan görevlerden biridir. Kullanıcı gerekli verileri forma girer ve gönderir. Ardından, web uygulamasının verileri işlemeden önce verileri doğrulaması gerekir. Örneğin, kullanıcı çalışan verilerini girer ve post_action'ın veri tabanına kaydetmeden önce doğrulaması gerekir. FuelPHP, bu amaç için gerçekten basit bir sınıf olan Validation sağlar.

FuelPHP'de, doğrulama kavramı çok basittir ve formu doğru şekilde doğrulamak için Validation sınıfı aracılığıyla çeşitli yöntemler sağlar. Doğrulamanın iş akışı aşağıdadır,

Step 1 - kullanarak yeni Doğrulama nesnesi oluşturun forge yöntem.

$val = Validation::forge();

Step 2 - Add yöntemi kullanılarak doğrulanması gereken alanları ekleyin.

$val->add('name', 'Employee name');

Step 3 - Eklenen alanlar için doğrulama kurallarını kullanarak ayarlayın add_rule yöntem.

$val->add('name', 'Employee name')->add_rule('required'); 
$val->add('age', 'Employee age')->add_rule('required') 
   ->add_rule('numeric_min', 20) 
   ->add_rule('numeric_max', 30);

Step 4 - Verileri doğrulamak için çalıştırma yöntemini çağırın.

// run validation on just post 
if ($val->run()) { 
   // success 
} else { 
   // falier 
}

Step 5 - Sırasıyla geçerli ve geçersiz alanları almak için validated ve error kullanın.

$vars = $val->validated(); 
$vars = $val->error();

Kurallar

FuelPHP, doğrulanması gereken birçok kural içerir ve ayrıca yeni kurallar oluşturma seçeneği sunar. Validation sınıfı tarafından desteklenen kurallar aşağıdaki gibidir,

  • required - Girilecek değer

  • required_with- Başka bir alanı tamamlayıcı alan olarak ayarlayın. Alan ayarlanmışsa, tamamlayıcı alanların da ayarlanması gerekir

  • match_value - Alanın değeriyle eşleşecek değeri ayarlayın

  • match_pattern - Alanın değeriyle normal ifade olarak eşleştirilecek değeri ayarlayın

  • match_field - Başka bir alanın değerini, alanın değeriyle eşleşecek değer olarak ayarlayın

  • match_collection - Alanın değeriyle koleksiyon olarak eşleştirilecek değeri ayarlayın

  • min_length - Alan değerinin minimum uzunluğunu ayarlayın

  • max_length - Alan değerinin maksimum uzunluğunu ayarlayın

  • exact_length - Alan değerinin tam uzunluğunu ayarlayın

  • valid_date - Alanın değerini geçerli bir tarihe ayarlayın

  • valid_email - Alanın değerini geçerli bir e-postaya ayarlayın

  • valid_emails - Alanın değerini virgülle ayrılmış geçerli e-postalar olarak ayarlayın

  • valid_url - Alanın değerini geçerli bir URL olarak ayarlayın

  • valid_ip - Alanın değerini geçerli bir IP'ye ayarlayın

  • numeric_min - Alan değerinin minimum değerini ayarlayın

  • numeric_max - Alan değerinin maksimum değerini ayarlayın

  • numeric_between - Alan değerinin minimum ve maksimum değerini ayarlayın

  • valid_string - Normal ifadeye benzer ancak daha basittir

$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');

Burada alfa alfabetik karakterleri ve noktalar (.) Geçerli dizge yalnızca alfabetik karakter ve (.) İçeren dizedir. Diğer seçenekler büyük harf, küçük harf, özel, sayısal, boşluk vb.

Çalışma Örneği

Çalışan ekle özelliğini doğrulamayı içerecek şekilde güncelleyebiliriz. Sadece güncelleyinpost_add Çalışan kontrolörünün yöntemi aşağıdaki gibidir.

public function post_add() { 
   $val = Validation::forge(); 
   $val->add('name', 'Employee name')->add_rule('required'); 
   $val->add('age', 'Employee age')->add_rule('required')
      ->add_rule('numeric_min', 20) 
      ->add_rule('numeric_max', 30);  
   
   if ($val->run()) { 
      $name = Input::post('name'); 
      $age = Input::post('age');  
      $model = new model_employee(); 
      $model->name = $name; 
      $model->age = $age; 
      $model->save();  
      Response::redirect('employee/list'); 
   } else { 
      Response::redirect('employee/add'); 
   } 
}

Burada belirledik nameve zorunlu alanlar olarak yaş. age20 ile 30 arasında olması gerekir. Her iki kural da geçerliyse, çalışan verileri kaydedilir ve çalışan listesi sayfasına yönlendirilir. Aksi takdirde, çalışan verileri reddedilecek ve çalışan sayfası eklemek için yeniden yönlendirilecektir.