2016-03-19 4 views
1

Ich habe Code anfordern Klasse:Laravel: Fügen Sie benutzerdefinierte Prüfklasse absägen Attribute() -Methode anfordern Klasse

public function rules() 
{ 
    return [ 
     'id' => 'required|check_xxx', 
    ]; 
} 

public function attributes() 
{ 
    return [ 
     'id' => 'AAA', 
    ]; 
} 

Wie Sie sehen können. Ich habe Cusom Validierungsmethode Name check_xxx. Diese Methode innerhalb der Klasse CustomValidator.

Also, ich habe Code:

class ValidationServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     $this->app->validator->resolver(function ($translator, $data, $rules, $messages) { 
      return new CustomValidator($translator, $data, $rules, $messages); 
     }); 
    } 
} 

Und Fehlermeldung für erforderlich ist: Bitte Eingabe: Attribut

Aber ich habe die Meldung: Bitte input id, (TRUE ist: Bitte geben Sie AAA)

Ich entdeckte, dass $ this-> app-> Validator-> Resolver make attributes() Methode in Request ist nutzlos.

Wie kann ich das beheben? Vielen Dank.

Antwort

1

Ich hatte dieses Problem in Laravel 5.2, fand aber eine schnelle Lösung wie folgt. Im folgenden Beispiel fügen Sie eine Regel direkt in den APP Provider ein.

Datei-Regel hinzuzufügen: app/Anbieter/AppServiceProvider.php

public function boot() 
    { 
     // .... 

     #/ 
     #/ Adding rule "even_number" to check even numbers. 
     #/ 
     \Validator::extend('even_number', function($attribute, $value, $parameters, $validator) { 
       $value = intval($value); 
       return ($value % 2) == 0); 

     // ... 

    } 
Verwandte Themen