2017-12-30 54 views
0
public function store(Request $request) { 

     $response = array('response' => '', 'success'=>false); 

     $rules = [ 
      'email' => 'required|email', 
      'password' => 'required' 
     ]; 

     $validator = \Validator::make($request->all(), $rules); 

     if($validator->fails()){ 
      $response['response'] = $validator->messages(); 
      return $this->response->error($response, 401); 
      // or 
      return $this->response->error($validator, 401); 

     }else{ 
      User::create($request->all()); 
     } 

    } 

dingo APIを使用してlaravelでバリデーターを設定するにはどうすればよいですか?上記のコードを試しましたが、動作しません。どこに正しいエラーログが記録されるのかわかりません。dingo apiバリデータールールを修正する必要があります

ご案内してください。

答えて

0
public function store() 
{ 
    $rules = [ 
     'email' => 'required|email', 
     'password' => 'required' 
    ]; 


    $payload = app('request')->only('username', 'password'); 

    $validator = app('validator')->make($payload, $rules); 

    if ($validator->fails()) { 
     throw new Dingo\Api\Exception\StoreResourceFailedException('Could not create new user.', $validator->errors()); 
    } 

    User::create($request->all()); 

    // send a success response 
} 

この例は、documentation of Dingoから取得し、コードに基づいてカスタマイズしています。

0

特にDingo APIを使用しているときに検証を行うのが最も良い方法は、Form Requestsを使用することです。

しかしディンゴのAPIを使用している場合、あなたは通常のフォーム要求のように

use Dingo\Api\Http\FormRequest; 

代わりの

use App\Http\Requests\Request; を使用しています。

だからあなたの場合には、あなたは

<?php 

namespace App\Http\Requests; 

use Dingo\Api\Http\FormRequest; 

class CreateUser extends FormRequest 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'email' => 'required|email', 
      'password' => 'required' 
     ]; 
    } 
} 

状要求だから、これはあなたのコントローラの外検証を続ける必要があるだろう。そして、あなたのコントローラ機能は、ちょうどあなたがForm Requestsに精通していない場合は

public function store(Request $request) { 
     User::create($request->all()); 
} 

することができ、これはそれを見て素晴らしいチャンスです。乾杯。