2017-12-30 44 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에서 유효성 검사기를 어떻게 설정할 수 있습니까? 위의 코드를 시도했지만 제대로 작동하지 않는 경우 오류 로그를 추적하는 올바른 참조가 어디인지 이해할 수 없습니다딩고 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 App\Http\Requests\Request;

use Dingo\Api\Http\FormRequest; 

대신

를 사용합니다.

그래서 귀하의 경우, 당신은

<?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()); 
} 

할 수 있습니다, 이것은 그것을 볼 수있는 좋은 기회입니다. 건배.