2017-01-11 1 views
0

API를 만들었습니다. 거기에 검색을 수행하기 위해, 나는 기본적으로 너무 같은 URL 형성한다 (테이블을 다른 값으로 대체 검색) 다음특수 문자로 API 호출하기

$tableData = DB::table($table)->where('search', $search)->get(); 

이 그런 짓을.

https://something.com/api/returnSearch/{{table}}/{{search}} 

내 문제는 이것입니다. 다음

뭔가의 라인을 따라 검색 항목은 무엇인가 (ASDA/테스코)

그래서 전체 URL이

https://something.com/api/returnSearch/someTable/something (asda/tesco) 

문제처럼 보인다는의 슬래시입니다 검색, asda와 tesco를 구분합니다.

그래서 나는 그것이 슬래시가 URL의 일부라고 생각 추정 : 나는 우체부에서 그것을 테스트 할 때 나는 RouteCollection.php 라인 (161)에

NotFoundHttpException를 얻을. 앞으로 슬래시를 사용하여 검색을 허용하는 동안이 방법을 피할 수있는 방법이 있습니까? URL을에 특별한 의미를 가지고 URL 문자를 포함

감사

+0

API 호출이 이루어진 곳의 스크립트를 제공해 주실 수 있습니까? 그리고 URL 인코딩 및 디코딩을 시도해 보셨습니까? –

답변

3

, 당신은/탈출 URL 형식 규칙에 따라 그들을 인코딩 할 필요가있다. 구체적으로는 rawurlencode입니다.

printf('https://something.com/api/returnSearch/%s/%s', 
     rawurlencode($table), rawurlencode($search)) 

// https://something.com/api/returnSearch/someTable/something%20%28asda%2Ftesco%29