2016-03-28 18 views
5

मैं अपने खुद के सत्यापनकर्ता कि Illuminate\Validation\Validatorलार्वेल कस्टम वैलिडेटर कैसे बनाएं?

फैली मैं एक उदाहरण के एक जवाब यहाँ में दिए गए पढ़ा है बनाने की जरूरत है: Custom validation in Laravel 4

लेकिन समस्या यह स्पष्ट रूप से कैसे कस्टम सत्यापनकर्ता उपयोग करने के लिए प्रदर्शित नहीं करता है। यह स्पष्ट रूप से कस्टम सत्यापनकर्ता को कॉल नहीं करता है। क्या आप मुझे एक उदाहरण दे सकते हैं कि कस्टम सत्यापनकर्ता को कैसे कॉल करें।

+0

यहाँ पर Closures बनाने का पुराना तरीका तुलना में काफी बेहतर है ([समग्र अद्वितीय स्तंभों] की जाँच के लिए एक कस्टम सत्यापन नियम का एक उदाहरण http://stackoverflow.com/ है प्रश्न/26683762/कैसे करने वाली एड-संयुक्त-अद्वितीय क्षेत्रों-सत्यापनकर्ता-नियम-इन-laravel-4/26684043 # 26684043)। – Bogdan

उत्तर

0

मुझे नहीं पता कि यह वही है जो आप चाहते हैं लेकिन सीमा शुल्क नियम निर्धारित करने के लिए आपको पहले कस्टम नियम का विस्तार करना होगा।

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 
}); 

फिर अपने सत्यापन नियमों

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

Laravel 5.5 के बाद आप आप स्वयं के कस्टम मान्यता नियम वस्तु बना सकते हैं करने के लिए नियम जोड़ें।

आदेश, नया नियम बना कारीगर आदेश सिर्फ चलाने के लिए:

php artisan make:rule GreaterThanTen 

laravel app/Rules निर्देशिका

एक कस्टम वस्तु सत्यापन नियम का एक उदाहरण लग सकता है में नए नियम वर्ग स्थापित करेंगे कुछ की तरह:

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.'; 
    } 
} 
परिभाषित कस्टम नियम के साथ

, तो आप ऐसा तरह अपने नियंत्रक सत्यापन में इसका इस्तेमाल हो सकता है:

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

इस तरह AppServiceProvider कक्षा

संबंधित मुद्दे