Ich versuche, die doReplacements
Methode in Illuminate\Validation\Validator
zu überschreiben. Als ich die nativen Validator
und Request
Klassen erweitern, bekomme ich diesen Fehler:Laravel 5.2 - Erweiterung der Validator-Klasse
ReflectionException in Route.php line 270:
Class App\Http\Requests\FooRequest does not exist
Das ist, was ich tat:
Extend nativen
Illuminate\Validation\Validator
:class MyCustomValidator extends Validator { protected function doReplacements($message, $attribute, $rule, $parameters) { //override this method } }
Verwendung
MyCustomValidator
in eine abstrakte Erweiterung von nativenApp\Http\Requests\Request
:abstract class MyCustomRequest extends Request { //Override native method by injecting the extending validator protected function formatErrors(MyCustomValidator $validator) { return $validator->getMessageBag()->toArray(); } }
Extend
MyCustomRequest
mit Betonklasse:class FooRequest extends MyCustomRequest { public function authorize() { return true; } public function rules() { return [ // rules go here ]; } }
die
FooRequest
in einer Controller-Methode verwenden:public function store(FooRequest $request) { //use the request and persist }
ich ich bin zu raten, eine erforderliche Fassade bin fehlt , Anbieter oder Containerbindung. Ich lerne immer noch diese Themen und verstehe sie nicht gut genug, um einen guten nächsten Schritt zu erfahren.
Referenzen:
Custom validator in Laravel 5 - folgte ich die Antwort, aber immer noch die gleichen Fehler. Ich möchte wissen, ob dies auch nur im Entferntesten mit meinem Problem zusammenhängt, bevor ich versuche, was ich hier versucht habe.
Extending Custom Validation-Class - Problem sieht ähnlich aus, Antwort schlägt
Validator::extend
verwenden, die ich kenne, kann inAppServiceProvider
, aber idealerweise sollte meinen Code sein in seinem eigenen Lieferanten Paket erfolgen. Nochmal nicht sicher, ob relevant.
ich die 'Validator :: doReplacements' Methode außer Kraft zu setzen versuchen. Bearbeitete Frage zur Klärung – bsapaka