2016-05-05 18 views
0

Wenn Sie Ihre Daten mit einem Anfrage-Service validieren, wie erhalten Sie die Fehler im JSON-Format wie z.Laravel-Anfrage Service-Rückgabe JSON

return response->json(array("errors' => true, 'errors' => $errors)); 

Anfrage Service:

<?php 

namespace App\Http\Requests; 

use App\Http\Requests\Request; 
use Auth; 

class MyRequest extends Request 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    protected $action; 

    public function authorize() 
    { 
     if(Auth::check()) { 
      return true;    
     }   
    } 

    public function validate() { 
     return parent::validate(); 
    } 

    public function all() 
    { 

    } 

    public function messages() 
    { 
    }  

    public function rules() 
    {    

    } 
} 

Controller:

public function store(MyRequest $request) { 
    $mymodel = new MyModel(); 
    $mymodel->title = 'test'; 
    $model->save(); 
} 

Antwort

1

Sie müssen es nicht tun manuell, es wird ein Fehler Antwort automatisch sendet, die nützlich sein könnten wie:

@if ($errors->has()) 
     <div class="alert alert-danger"> 
     @foreach ($errors->all() as $error) 
      {{ $error }}<br>   
     @endforeach 
     </div> 
    @endif 

OR

@if ($errors->has('name')) <p class="help-block">{{ $errors->first('name') }}</p> @endif 

ODER

überspringen Anfrage und tun Validator :: make() und am Ende tun:

return response($validatorObject->messages(), 500); 
+0

Ist das nicht eine serverseitige Validierung Antwort, I möchte die Antwort als json formatieren – ONYX

+1

Wenn Sie Laravel Request für die Validierung verwenden, dann ist es eine serverseitige Validierung. Während Sie das Formular absenden, wird die Validierung und Antwort automatisch durchgeführt und Sie können die Antwort nicht diktieren. Das führt zu 2 Möglichkeiten, entweder Sie tun 'Validator :: make' und machen Ihre eigene Antwort (json) oder Sie können' json_encode ($ errors) 'machen. Wie auch immer Sie sich wohl fühlen. –

+0

Sie sagen also, dass ich diese Antwort nicht formatieren kann, wenn ich einen Anforderungsdienst verwende. – ONYX