내 CMS 포주로 검색과 같은 일반적인 작업을 단순화하려고합니다. CMS에는 여러 가지 모듈이 있으며 각 모듈은 동적 경로로 마스크 처리 할 수 있습니다.동적 검색, 검색 결과 링크 생성 (역방향 라우팅)
전체 시스템은 상당히 견고하고 유연하지만 검색 결과 페이지가 두통을 일으키는 곳입니다.
내가 이렇게 내 검색 클래스에 기본 데이터를 던지고있어 유연하게 유지하려면 그런 다음
$search->addTable('content', array('title', 'excerpt', 'body', 'meta_keywords', 'meta_description'));
$search->addTable('event', array('title', 'description', 'tags'));
내 검색 클래스는 을 결과를 잘 찾을 수 이러한 변수에서 하나 SQL 쿼리를 생성 (어쩌면 '멋지게'결과 집합에 다른 테이블의 행이 포함되어 있으므로 결과가 모두 단일 배열에 있기 때문에 어느 행이 어떤 테이블에 속하는지 알 수 없으므로 '멋지게'는 지금 최상의 단어가 아닙니다)
문제는 내가 변위하고 싶을 때이다. ay 결과 페이지 위에서 언급 한 시스템 유연성 (모든 콘텐츠/모듈은 아무 것도 숨길 수 있음) 때문에 매우 어려운 각 결과에 대한 적절한 URL을 작성해야합니다.
내 질문이 매우 현지화되어 있고 현재 양식에서 대답하기에 너무 모호 할 수도 있으므로 약간 문제를 명확히하려고 노력할 것입니다. 난 당신에 대한 모범 사례 또는 내 문제에 대한 간단한 대답을 요구하지 않습니다하지만 당신은 이러한 근본적인 문제에 대해 나에게 좋은 팁을 제공 할 수 있다면 나는 매우 감사 할 것 :
- 은 단일 쿼리 ISN '을 생산하는 것 같은데 내가 어떤 행이 어떤 테이블에 속해 있는지를 알 수 없기 때문에 (다른 테이블은 다른 URL을 만드는 방법을 의미 할 수 있기 때문에) 최선의 접근법이다. 또 다른 접근법은 각 테이블을 개별적으로 쿼리하고 결과를 다차원 배열 (키의 테이블 이름)에 저장하는 것입니다. foreach 루프 내에서 SQL을 쿼리하는 AFAIK는 허용 된 방법이 아닙니다. 단일 쿼리 내에서 테이블 이름을 반영하도록 각 결과 행을 표시 할 수 있습니까?
- 이러한 결과에 대한 실제 (가면을 쓴) URL을 만들지는 않을 것이지만 내게는 (SEO.com/content/nice-url-slug)와 같은 매우 기본적인 것들을 표시합니다. Google은 중복으로 인해 내 사이트를 처벌 할 수 있습니다. 이는 나에게 적합하지 않습니다.
언제나처럼 닫기를 클릭하는 대신에 물어보십시오. 아마 시나리오를 좀 더 명확하게 할 수 있습니다. 고마워, fabrik.