2016-09-22 11 views
0

저는 PHP에 익숙하지 않고 Slim Framework를 사용하여 간단한 Rest API를 개발하고 있습니다.Slim Framework Optional Params Routes

문서에 따르면 Slim은 FastRoute을 사용합니다.

내가 그런 선택 PARAMS (공급 업체 및 수량)와 경로가 :

path/items/{id}/{name}/{price}[/{vendor}[/{quantity}]] 

문제는 내가 공급 업체에두면수량의 값이 벤더로 이행하고 있다는 점이다

수량하지 않습니다 채워지 라. 빠른 경로를 통해 나는 그것을 성취 할 수 없다는 것을 이해합니다. 하지만 어떻게 할 수 있습니까?

  1. 빠른 경로로 처리 할 수 ​​있습니까?
  2. Slim으로 할 수 있습니까?
  3. 내가 원하는 것을 얻을 수있는 또 다른 프레임 워크가 있습니까?
  4. 쿼리 문자열 만 사용해야합니까? (나는 이것이 답이라고 생각하지만 더 많은 지식을 가진 사람으로부터 도움을 필요로한다).

감사합니다.

+0

수량 값이 항상 숫자라고 생각하십니까? 그리고 그 공급 업체 arent? 또는 공급 업체 값이 ID입니까? 둘 다 동일한 데이터 유형 (문자열 또는 정수)을 포함 할 수 있으면 수행하려는 방식대로 수행 할 수 없습니다. 라우터가 값 (예 : 10)이 공급 업체 ID 또는 수량인지 여부를 알 수 없습니다. 항상 공급 업체를 보내지 않는 이유는 무엇입니까? 아니면 URL에 모든 정보가 필요한 이유는 무엇입니까? 첫 번째 신분증에서 가져올 수 없습니까? –

+0

ID이기 때문에 할 수 없습니다. 어떻게이 매개 변수들을 전달할 수 있습니까? 당신에게 예제/링크를 줄 수 있습니까? 고마워요 – Alan

+0

옵션 매개 변수를 사용하여 새 항목을 추가 할 것 같아요. 내가 어떻게 해? – Alan

답변

1

동일한 유형이며 임의의 순서로 보낼 수있는 선택적 매개 변수를 사용하려는 경우 쿼리 문자열을 사용하거나 매개 변수를 생략하는 대신 0과 같은 값을 추가하는 고정 된 형식을 사용할 수 있습니다. "공급 업체"가 설정되어 있지 않은 예 :

/10/somename/15/0/12 

그런 다음 매개 변수는 URL/경로에서 선택하지 않은하지만 당신은 PARAM가 0 인 경우 단지 그들을 무시하고, 대신 컨트롤러가 처리 할 수 ​​있습니다.