2016-11-20 4 views
1

ich die folgende Fehlermeldung erhalten:anfordern Daten nicht Laravel Validierung obwohl es sollte nicht

the given data failed to pass validation. /home/vagrant/Code/laravel/ptm/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php#89

Als ich im $data aussehen, ist es gefüllt mit:

array:1 [ 
    "{"_token":"Z5fv3XpoNwoMdJPRP16I09bZeX7Pb6raH30K8n3b","name":"test","id":"","email":"[email protected]_com","password":"testing"}" 
] 

Hier ist der Code :

Antwort

0

Es ist klar, dass die validate() Methode eine Ausnahme auslöst . Wenn Sie es nicht wollen, eine Ausnahme zu werfen, aktualisieren Sie Ihre App\Exceptions\Handler Klasse und fügen Sie ValidationException zum $dontReport Array:

class Handler extends ExceptionHandler 
{ 
    /** 
    * A list of the exception types that should not be reported. 
    * 
    * @var array 
    */ 
    protected $dontReport = [ 
     \Illuminate\Auth\AuthenticationException::class, 
     \Illuminate\Auth\Access\AuthorizationException::class, 
     \Symfony\Component\HttpKernel\Exception\HttpException::class, 
     \Illuminate\Database\Eloquent\ModelNotFoundException::class, 
     \Illuminate\Session\TokenMismatchException::class, 
     \Illuminate\Validation\ValidationException::class, // <= Here 
    ]; 

Lesen Sie mehr:
Documentation how to migrate from Laravel 5.1 to 5.2

Oder Sie können es lassen, wie es ist, und behandelt die Ausnahme in einem neuen catch Block:

public function create(Request $request) 
{ 
    try { 
     $this->validate($request, [ 
      'name'  => 'required', 
      'email' => 'required', 
      'password' => 'required' 
     ]); 

     $this->user->create($request); 
    } catch (ValidationException $e) { 
     return response()->json([ 
      'success' => false, 
      'message' => 'There were validation errors.', 
     ], 400); 
    } catch (Exception $e) { 
     return response()->json([ 
      'success' => false, 
      'message' => 'Something went wrong, please try again later.' 
     ], 400); 
    } 

    return response()->json([ 
     'success' => true, 
     'message' => 'User successfully saved!' 
    ], 201); 
} 
+0

Aber warum wirft es eine Ausnahme. Alle Felder sind ausgefüllt. Dies ist keine Migration, aber eine neue Anwendung mit Laravel 5.3 – user3552264

+0

SepehrLajevardi, danke vier Ihre Lösung, aber ich verstehe nicht, warum es nicht validiert ist, weil alle Felder ausgefüllt sind. Warum also? – user3552264

+0

Ah, du hast recht, das habe ich vermisst. Lass mich sehen. Ich werde meine Antwort aktualisieren. – sepehr

-1

Sie könnten die Klinge Vorlage für den richtigen Fall auf den Variablen überprüfen. z.B. Bei 'Name', 'E-Mail' und 'Passwort' wird zwischen Groß- und Kleinschreibung unterschieden, und der Blade-Template-Fall der Variablen muss mit dem Fall des Controllers für die Variablen übereinstimmen.

+0

Hallo Coders2055, ich folge diesem Tutorial mariogallegos.com/tutorials/crud-custom-form. Was ich will, ist zu sehen, was in der Anfrage ist. Warum beschweren sie sich über ungültige Anfrage im Controller? – user3552264

Verwandte Themen