2016-05-05 4 views
0

リクエストサービスを使用してデータを検証すると、どのようにjson形式のエラーが返されますか?Laravel request service return json

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

要求サービス:

<?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() 
    {    

    } 
} 

コントローラー:

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

答えて

1

あなたはそれを手動で行う必要はありません、それは自動的に同じように使用することができ、エラー応答を送信します:

@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 

OR

スキップ要求およびバリ::メイクを(行う)、最後に実行します。

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

はされていないことを、サーバー側の検証応答、I応答をjsonとしてフォーマットしたい – ONYX

+1

Laravel Requestを使用して検証している場合は、サーバー側の検証です。あなたがフォームを提出している間、検証と応答は自動的に処理され、あなたは応答を指示することはできません。これは2つの方法につながります。あなたは 'Validator :: make'を行い、独自の応答(json)を行うか、' json_encode($ errors) 'を実行できます。いずれにしてもあなたは快適です。 –

+0

リクエストサービスを使用すると、そのレスポンスをフォーマットできないと言っています。 – ONYX