Giriş yapmadınız.

#1 22.02.2013 14:12:36

drlinux
Moderatör
Yer: İstanbul
Kayıtlı: 28.12.2012
Mesajlar: 98
Website

Array doğrulama (numeric validation)

Merhaba,

Bildiğiniz üzere laravel validation sınıfı içerisinde array validation ile ilgili bir fonksiyon mevcut değil. Özellikle grup form elementlerinde (kategori checkbox gibi) bu tarz bir numeric doğrulama fonksiyonuna ihtiyaç duyulmaktadır.

Öncelikle /application/libraries dizini altına aşağıdaki kodları validator.php adıyla kaydedin.

class Validator extends Laravel\Validator {

    public function validate_array_numeric($attribute, $value, $parameters){
        $numeric_values = array_filter($value, create_function('$item', 'return (is_numeric($item));'));
        return count($numeric_values) == count($value);
    }

}

Daha sonra application/language/en/validation.php dosyasına aşağıdaki satırı:

"array_numeric"   => "The :attribute contains non-numeric values",

Sonra da application/language/tr/validation.php dosyasına aşağıdaki satırı ekleyiniz:

"array_numeric"   => ":attribute alanı sayısal olmayan değerler içeriyor",

Daha sonra application/config/application.php içerisindeki aşağıdaki satırı

'Validator'  	=> 'Laravel\\Validator',

Bu şekilde değiştirin:

#'Validator'  	=> 'Laravel\\Validator',

Artık fonksiyonumuzu bir doğrulama kuralı (?) (validation rule) tanımlarken aşağıdaki şekilde kullanabiliriz:

public static $rules = array(
'product_categories'=>'array_numeric'
);

İyi kodlamalar.

Son düzenleyen drlinux (15.03.2013 23:16:16)


Man is a slow, sloppy and brilliant thinker; the machine is fast, accurate and stupid. ~ William M. Kelly

Çevrimdışı

#2 02.03.2013 12:09:51

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,478
Website

Yanıt: Array doğrulama (numeric validation)

Teşekkürler, ellerin dert görmesin.

Çevrimdışı

#3 04.03.2013 15:14:34

drlinux
Moderatör
Yer: İstanbul
Kayıtlı: 28.12.2012
Mesajlar: 98
Website

Yanıt: Array doğrulama (numeric validation)

Umarım faydalı olur.... Laravel 4 için request listesine yazdım bakalım umarım bu tarz array validationlar da gelir...


Man is a slow, sloppy and brilliant thinker; the machine is fast, accurate and stupid. ~ William M. Kelly

Çevrimdışı

#4 21.08.2014 23:02:31

astald
Üye
Yer: İzmir
Kayıtlı: 15.03.2014
Mesajlar: 18
Website

Yanıt: Array doğrulama (numeric validation)

Larave 4 te işlemi nasıl uygularız?

Çevrimdışı

#5 22.08.2014 02:06:14

sergin
Üye
Kayıtlı: 17.07.2013
Mesajlar: 130
Website

Yanıt: Array doğrulama (numeric validation)

@astald, Laravel 4 için bu genişletme gerekli gibi görünmüyor. Laravel Validatör kurallarından birisinin 'array' kuralı olduğu dikkate alındığında, Validatör genişletmesi yapmaksızın, orijinal sınıfın public metodlarından "each"i kullanarak dizinin elemanları için de kurallar tanımlamak zaten mümkündür.

Örneğin, 

Route::get('/eleman', function () {
   $veri = array('liste'=>array(1,'yazi',3, 9));
   $kural = array('liste'=>'array');
   $vala = Validator::make($veri, $kural);

   //array tipindeki "liste" öğesinin elemanları için numerik ve 6'dan küçük kurallar ekliyoruz. 
   $vala->each('liste', array('numeric', 'max:5')); 
   if ($vala->fails()) {
      $mesajlar = $vala->messages();
      return Response::json($mesajlar);
  }
     return "Sorun yok";
});

Çıktısı:

{"liste.1":["The liste.1 must be a number."],"liste.3":["The liste.3 may not be greater than 5."]}

Son düzenleyen sergin (22.08.2014 02:34:29)

Çevrimdışı

#6 22.08.2014 09:46:42

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,478
Website

Çevrimdışı

Forum alt kısmı