/category/subcategory/n-subcategories/article과 같이 중첩 된 범주가있는 사람이 읽을 수있는 URL입니다. CakePHP 2.2.3을 사용 중이며 라우팅 문제에 대한 적절한 해결책을 찾을 수 없습니다. 이 개 테이블 사용 :paginator 및 기사가 포함 된 중첩 된 범주의 SEO 경로
- 기사 것은
- 그냥 정상적인 "단일"보기를 (또한 제품이나 게시물이나 ... 수)
- 기사는 하나 개의 범주에 속하는
- 카테고리
- 중첩 된 (n 레벨 트리 동작)
- 하나 개의 범주는 많은 기사
- 카테고리보기는 기사를 보여주는 매기기를 사용하여이 범주에 관련된
- 카테고리보기 목록 모든 기사 나열
매우 일반적인 예 I을 가질 수 있습니다 추측. 하지만 어떻게 이런 식으로 중첩 된 카테고리로 URL-경로를 얻기 위해, 지금 라우터를 정의해야합니까 :
/categoryname1 (showing category view)
/categoryname1/articlename1 (showing article view)
/categoryname2/articlename2 (showing article view)
/categoryname2/subcategoryname1 (showing category view)
/categoryname2/subcategoryname2/articlename4 (showing article view)
/n-categoryname/././...n-subcategoryname (showing category view)
/n-categoryname/././...n-subcategoryname/n-articlename (article view)
내가 모든 경로가 routes.php에서 해결하기 위해 노력하지만 매우 불편하고 나는 역동적 인 해결책이 있어야한다고 생각한다.
카테고리와 기사 별칭에서 모든 경로를 자동으로 생성하여 별도의 "routes"데이터베이스 테이블에 저장하려고했습니다. 작동했지만 단일 경로의 정의가 필요하지 않다고 생각합니다. ?!
는 또한, 모든 기사는 모든 범주에서 사용할 수있는,
Router::connect(
'/any-category-name',
array('controller' => 'categories', 'action' => 'view', 1)
);
다음 기사
Router::connect(
'/any-category-name/:slug',
array('controller' => 'articles', 'action' => 'view'),
array('pass' => array('slug'))
);
그러나이 방법 에 대한
처럼, 모든 범주가 라우터에 고정 정의하는 단지 시도 이것은 좋은 해결책이 아닙니다. 그리고 내가Router::connect(
'/:slug', ...
사용에 대한 생각하지만 난 매김 여전히이 경우 작동하는지 모르겠어요도 (가능한 두 개의 서로 다른 컨트롤러와 두 개의 서로 다른 견해가 있기 때문에, 계속하는 방법을 모르고 설치시 더 많은 컨트롤러/작업을 사용하려는 경우 어떻게됩니까?)
나는 Cake에서 두 컨트롤러 (카테고리와 기사)로 중첩 된 URL을 얻는 것이 그렇게 어렵지 않아야한다고 생각한다. 유용한 조언을 주셔서 감사합니다!
1) URL에 카테고리의 수를 확인하고 마지막 매개 변수는 카테고리 또는
핸들 두 기사 인 경우
2) 확인 :
고마워, 이렇게 해봐야 겠지만 좋은 해결책 같아. 나는 Category-Slug와 Article-Slug가이 작업을 위해 유일 할 필요가 있다고 생각하지만, 데이터베이스 테이블에 Route를 저장하는 경우에도 필요합니다 ... 감사합니다! –