2017-11-22 7 views
-1

저는 Laravel에서 Vue.js 프론트 엔드와 함께 사용할 API를 개발하고 있습니다.Axara를 사용하여 Laravel의 필터링 결과

url/api/jobs/all로 이동하여 모든 "작업"목록을 가져오고 있지만 사용자에게 필터에 대한 방법을 제공하려면 "created_at", "value"및 " 결말 _ 열 " (/ jobs/all? created_at = desc & 값 = 내림차순)

우선 저는 솔루션에 대해 잘 모르겠습니다. 나는 모든 작업을 가져 와서 Vue에서 필터링하거나 get 요청에 액시오와 함께 params를 보내고 백엔드에서 필터링하는 것에 대해 생각합니다. 나는 백엔드에서 그들을 필터링하는 것이 올바른 해결책이라고 생각하지만 실제로 그것을 구현하는 방법을 모르겠습니다.

내가 Axios의에서 GET 요청에 PARAMS을 보내는 방법을 알고 있지만 내가/동적 PARAMS을 (때로는 "값"만 "값"에 대한 때때로 "ending_at" 필터링 다양한 보내는 방법을 모른다, 예를 들어) 및 laravel show 함수에서 해당 매개 변수를 해석하는 방법.

몇 가지 예를 들어 주시거나 올바른 방식으로 알려 주시겠습니까?

답변

0

Laravel에서 정보를 처리하는 방법을 수정해야합니다. 기본적으로 Eloquent 메서드를 사용해야합니다. orderBy()

정렬을 위해 매개 변수를 명시 적으로 정의하는 것이 좋습니다. 그런 식으로 다른 매개 변수를 포함 할 수 있습니다 (예제에서는 페이지 매김). ? 오름차순 & 페이지 = 1 & per_page = 10

use Illuminate\Http\Request as Request; 

class MyController extends Controller { 

    public function getUsers(Request $request): string 
    { 
     // Set default sort 
     $sortParams = ["country", "asc"]; 

     // Process query parameters. Loop for multiple sort parameters. 
     if ($sort = $request->input("sort")) { 
      $sortParams = explode("|", $sort); 
     } 

     return User::with("Country") 
      ->orderBy($sortParams[0], $sortParams[1]) 
      ->paginate(50) 
      ->toJson(); 
    } 
} 
| 당신은 당신이 정렬은 오름차순 또는

/API/사용자 종류 = ID를 하강 할 것인지 여부를 나타 내기 위해 파이프 나 다른 문자를 사용할 수 있습니다


이것은 단일 컨트롤러 방법에 대한 일회용 솔루션의 일종입니다. 더 견고하고 확장 가능한 해결책을 찾기 위해 모델을 수정하는 방법을 살펴 보았습니다. perhaps with an Trait

관련 문제