2010-02-16 2 views
0

위치 및 카테고리를 기반으로 데이터베이스 결과를 필터링 할 수있는 앱을 작성 중입니다.여러 변수에 대해 코드 점화기 URI 세그먼트를 사용하려면 어떻게해야합니까?

누군가 골프 카테고리에서 리버풀을 검색한다면 URI는 /index.php/search/Liverpool/Golf이됩니다.

사람이 위치하지만 카테고리별로 검색 할 경우, 그들은 누군가가이 위치에 잡힐 것 때문에 그들이 /index.php/search/Golf를 사용할 수없는 것 카테고리 만 필터링 할해야 /index.php/search/Liverpool 그러나

로 전송된다 수색.

/index.php/search/Golf을 인식하는 모범 사례가 있습니까? 이 두 가지 쿼리를 구분하기 위해 URI에 추가해야 할 사항은 무엇입니까? /index.php/search/category/Golf 아마도?

비록 내가 피하려고하는 바로 그 특성 인 /index.php?search&category=Golf의 특성을 나타내 기 시작하고 있지만.

+1

'/ index.php/search/category/Golf'와 비슷합니다. 태그와 비슷합니다 – Darmen

답변

0

검색하는 항목에 관계없이 URI 세그먼트를 계속 유지하는 것이 가장 좋습니다.

index.php/LOCATION/CATEGORY 

그들은 위치에 관심이없는 경우 시스템에 필러 통과 : 그들은 단지 원하는 경우

index.php/anywhere/golf 

그런 다음 코드에서 그냥 아무데도의 특정 문자열을 확인

이 결정을 활동을 참조하십시오. 난 당신이 링크 또는 포럼 (그리고 그들은 URI 문자열을 입력하지 않습니다) 그들 중 하나를 리디렉션 될 거라고 생각하므로 당신은 당신이 기대하는 정보를 전달하고 그것에 대해 테스트 안전해야합니다.

+0

나는 이걸로 간다. 'index.php/search/All/All/Golf' – Matthew

+0

@Matt - 나는 이렇게하면 만족할 것이라고 생각한다. 귀하의 uri 위치 (1st/2nd/3rd)는 기본적으로 구식 학교의 키 GET string key = value 쌍. – Shane

2

사용해보십시오 $ this-> uri-> uri_to_assoc (N) 이 (페이지에 절반 방법 아래) http://codeigniter.com/user_guide/libraries/uri.html 여기에 설명

기본적으로이처럼 URL을 구성합니다

mysite.com /index.php/search/location/liverpool/category/golf

참고 :이 모두 모든 시간이 필요 없다 있도록 매개 변수는 선택 사항입니다. 당신은 단지뿐만 아니라

mysite.com/index.php/search/location/liverpool/ 및

mysite.com/index.php/search/category/golf을 할 수

이 방법은 찾고있는 요소가 존재하지 않으면 FALSE를 반환합니다.

+0

불량 구문없이 GET 변수의 키/값 쌍을 유지하므로 가장 좋은 방법입니다. –

0

위의 Tom에서 제안한 형식을 사용하고 아래의 내용을 따라 매개 변수의 값을 결정합니다.

$segment_array = $this->uri->segment_array();   
$is_location_searched = array_search('location', $segment_array); 
if($is_location_searched && $this->uri->segment($is_location_searched +1)) 
{ 
    $location = $this->uri->segment($is_sorted+1); 
} 
+0

톰스는 $ this-> uri-> uri_to_assoc (n)을 사용하지 않으므로 위의 코드보다 깨끗한 접근 방식이지만 궁극적으로는 동일한 URL 구조를 사용하는 것이 좋습니다. –

0

http://lucenebook.com/#/p:solr/s:wiki을 보시고 왼쪽 탐색 메뉴에서 조금만 클릭하십시오. 당신이 할 때 url에서 일어나는 일에 세심한주의를 기울이십시오.나는이 계획을 여러 가지 이유로 정말 좋아합니다.

  1. SEO 용입니다.
  2. "호기심 많은"사람들이 URL을 혼합/일치시킬 수 있으며 여전히 적절한 검색으로 해결됩니다.
  3. 그냥 좋아 보인다!

물론 트릭은 실제로 코드를 작성하는 방식입니다. 그것을 분류하는 데 몇 주가 걸렸지 만, 마침내 그 사이트의 버전을 갖게되었습니다. 아약스보다는 검색 엔진이 좋기 때문에 아약스를 기반으로하지 않습니다. Ajax는 청구서를 지불하지 않습니다.

관련 문제