2013-01-27 5 views
1

저는 API의 일부를 실행 중이지만 몇 가지 문제에 집착하고 있습니다. 나는 이것을 사용하여, Laravel의 REST 컨트롤러와 함께 일하고 Response::eloquent($query);과 같은 방법을 사용할 수있는 능력을 사랑하고 그러나 :쿼리 매개 변수가 포함 된 Laravel REST API

  1. 이 어떻게 쿼리 매개 변수 (예 : ID = 27 & order_by = 타임 스탬프)을 처리해야 리소스 경우 내가 여러 테이블에 합류하는 중입니까?
  2. 데이터베이스에서 값을 가져와 API 액세스를 위해 표시하려는 특정 필드만으로 배열을 구성해야합니까? 그러면 쿼리 매개 변수로 어떻게 작동할까요?

답변

4

먼저 REST 경로 서식 지정에 대한 자세한 내용은 Teach a Dog to REST [연결이 끊어졌습니다]를 시청하는 것이 좋습니다. 귀하의 질문에 대해서는

: laravel input & cookies docs에서 언급 한 바와 같이 당신은 Input::get() and Input::all() 방법을 통해 입력 필드를 처리 할 수 ​​

  1. . laravel의 Validator 클래스를 사용하여 들어오는 데이터의 유효성을 검사해야 할 수도 있습니다. 귀하의 예제에서 언급 한 바와 같이
  2. 당신이 입력에서 ID와 order_by 필드를 인수 말 :

    $id = Input::get('id'); $order_criteria = Input::get('order_by');

유창함 쿼리 빌더를 사용하여

처음 사용
DB::table('dbtable')->where('id', '=', $id)->order_by($order_criteria, 'desc')->first(); 

//() 결과가 반환 될 수있는 것보다 더 많은 다른 기준에 대해 단 하나의 결과 만 얻는 것이 확실하기 때문에 -> get()을 대신 사용할 수 있습니다.

+1

안녕 친구! 나는 Apigee의 블로그를 자세히 읽고 이미 멋진 비디오를 통해 많은 것을 배웠다. 이미 언급 한 내용 중 일부를 수행하고 있습니다. 내 질문에 정말 같아요, 어떻게 다른 리소스에 대한 유연한 방식으로 쿼리 매개 변수를 포함 할?기본 컨트롤러를 확장하고 쿼리 매개 변수를 처리하는 일종의 함수를 작성해야합니까? 내가 이걸 어떻게 권하고 싶니? – Sneaksta

+0

오, 나는 당신이 정말로 도움이 필요한 것을 얻지 못하고 있다고 생각한다. URL에있는 params의 요청이나 포맷을 어떻게 처리 할 것인가? 어쩌면 당신은 어떤 종류의 예제를 제공 할 수 있습니다. – Mulkave

+0

응답에서 반환하려는 값으로 배열을 직접 구성해야합니까? – Sneaksta

3

이 패키지를 출시했습니다.

당신은 위키 페이지에 대한 https://github.com/selahattinunlu/laravel-api-query-builder

을이을 확인할 수 있습니다 : https://github.com/selahattinunlu/laravel-api-query-builder/wiki

이 패키지는 URL 매개 변수와 쿼리를 작성합니다.

예 :?!

/API/사용자 이름 = 자체 * & 나이 = 18 & order_by = 나이, 오름차순 & 제한 = 2 & 열 = 이름, 나이, 도시 = & 포함 CITY_ID

그리고 쿼리를

Users::with(['city'])->select(['name', 'age', 'city_id']) 
        ->where('age', '!=', 18) 
        ->where('name', 'like', 'se%') 
        ->orderBy('age', 'asc') 
        ->take(2) 

사용 결과 :

$queryBuilder = new QueryBuilder(new User, $request); 

return response->json([ 
    'data' => $queryBuilder->build()->paginate(), 
    . 
    . 
]); 

그게 전부입니다.

관련 문제