2016-03-28 30 views
5

Buraya bir cevap verilen bir örnek okudum Illuminate\Validation\ValidatorLaravel Özel Doğrulayıcı Nasıl Yapılır?

uzanır kendi doğrulayıcı yapmak gerekir: Custom validation in Laravel 4

Ama sorun açıkça özel doğrulayıcı nasıl kullanılacağını göstermez olduğunu. Özel validator'ı açık olarak çağırmaz. Özel doğrulayıcıyı nasıl arayacağımı gösteren bir örnek verebilir misiniz?

+0

üzerinde Closures oluşturmak eski yolu daha iyi oluyor ise sorular/26683762/how-to-add-kombine-unique-alanlar-doğrulayıcı-kural-in-laravel-4/26684043 # 26684043). – Bogdan

cevap

0

İstediğiniz şey olup olmadığını bilmiyorum, ancak gümrük kurallarını ayarlamak için öncelikle özel kuralı genişletmeniz gerekir.

Validator::extend('custom_rule_name',function($attribute, $value, $parameters){ 
    //code that would validate 
    //attribute its the field under validation 
    //values its the value of the field 
    //parameters its the value that it will validate againts 
}); 

O zaman Özel Doğrulama kuralı nesnenin sahibi oluşturabilir laravel 5.5 sonra, doğrulama kuralları

$rules = array(
    'field_1' => 'custom_rule_name:parameter' 
); 
1

kuralı ekleyin.

php artisan make:rule GreaterThanTen 

laravel app/Rules dizinde

görünebilir özel nesne geçerlilik kuralı örneği yeni kural sınıfını yerleştirecektir: esnaf komutu, yeni bir kural oluşturmak sadece çalıştırmak için

gibi bir şey: tanımlanmış özel kuralıyla

namespace App\Rules; 

use Illuminate\Contracts\Validation\Rule; 

class GreaterThanTen implements Rule 
{ 
    // Should return true or false depending on whether the attribute value is valid or not. 
    public function passes($attribute, $value) 
    { 
     return $value > 10; 
    } 

    // This method should return the validation error message that should be used when validation fails 
    public function message() 
    { 
     return 'The :attribute must be greater than 10.'; 
    } 
} 

, bunu gibi denetleyici doğrulama kullanmak olabilir:

public function store(Request $request) 
{ 
    $request->validate([ 
     'age' => ['required', new GreaterThanTen], 
    ]); 
} 

Bu şekilde [kompozit benzersiz sütunlar] kontrol etmek için özel bir geçerlilik kuralı örneği (http://stackoverflow.com/ AppServiceProvider Sınıf İşte

İlgili konular