2017-06-05 5 views
1

Ich habe damit begonnen, mit Validatoren in Laravel herumzubasteln und habe mich in eine Ecke programmiert.Laravel-Validator, Parameter zur Validierung hinzufügen

Hintergrund

Ich habe eine Methode, die ich überprüfen verwenden, wenn eine Adresse durch Google Maps vorhanden ist. Seit ich nur eine Datei und Validierung in dieser Datei habe, lasse ich sie einfach ein Objekt zurückgeben, das angibt, ob Länge und Breite übereinstimmen und die formatierte Adresse.

return (object) ['result' => (bool) $match, 'formatedAddress' => (string) $googleMaps->formatted_address]; 

(Typecast für Klarheit, keine tatsächliche Typumwandlung in Code an dieser Stelle.)

Dies funktionierte gut in der Steuerung, da ich die Variablen innerhalb der Methode wiederverwenden konnte, aber nicht so gut nach dem Umzug, es zu AppServiceProvider.

Frage:

Gibt es eine Möglichkeit Validator::extend() setzen einen öffentlichen Parameter auf die Validierung zu machen, damit ich die formatierte Adresse erreichen kann? Oder muss ich das anders machen?

Verwenden von PHP 5.6 und Laravel 5.4.

Antwort

1

Ich fand tatsächlich die Antwort beim Basteln ein bisschen mehr. Ich habe einen Fehler in meinen Bedingungen gemacht, so dass ich nicht einmal den Punkt erreicht habe, an dem ich die Variable gesetzt habe. Grundsätzlich , das ist die Lösung:

Validator::extend('location', function (
    $attribute, $value, $parameters, $validator 
) { 
    $validator->location = true; 
} 

Hoffnung meine kleinen Fehler und Versehen jemand anderes nicht in der gleichen Art und Weise stecken helfen kann.

Verwandte Themen