cakephp 2.x에서 커스텀 라우터 클래스를 만들었습니다. 나는 단지 this 블로그 게시물을 따르고 있습니다. 내 애플 리케이션에서/라우팅/경로 폴더가 없어 및 폴더를 만들고 그것에 StaticSlugRoute.php 파일을 넣어. 이 파일에서 다음 코드를 포함 cakephp 커스텀 라우트 클래스를 설정하는 방법
<?php
App::uses('Event', 'Model');
App::uses('CakeRoute', 'Routing/Route');
App::uses('ClassRegistry', 'Utility');
class StaticSlugRoute extends CakeRoute {
public function parse($url) {
$params = parent::parse($url);
if (empty($params)) {
return false;
}
$this->Event = ClassRegistry::init('Event');
$title = $params['title'];
$event = $this->Event->find('first', array(
'conditions' => array(
'Event.title' => $title,
),
'fields' => array('Event.id'),
'recursive' => -1,
));
if ($event) {
$params['pass'] = array($event['Event']['id']);
return $params;
}
return false;
}
}
?>
는이 코드를 추가하지만 (이벤트/인덱스가 올바른 작동) .I이 'www.example.com/events/event 제목'경로하려는 노력을 보인다 않았다 url to 'www.example.com/events/index/id'. 누락 된 것이 있거나이 코드를 어디로 가져올 필요가 있습니까? 이 유형의 ('www.example.com/event 제목') URL을 리디렉션 할 수있는 경우
이벤트/색인을 이벤트 ID 대신 이벤트 제목으로 사용하는 것이 좋습니다. 그런 다음 이벤트/색인에서 이벤트를 찾기 위해 로직을 수행하고 자신의 라우트 클래스를 작성하는 대신 config/routes.php에서 일반 구성을 사용할 수 있습니다. – Kai
감사합니다. :)하지만 저는 이미 'config/routes.php'에서 'www.example.com/events/event title'을하고 있습니다. 이제 정적 페이지를 추가해야합니다 (우리에 관해서, 우리에게 연락하십시오 ... 그리고 미래에 더 많은 페이지가 있습니다 .-www.example.com/about 우리). 이제 'www.example.com/event title'로 라우팅해야합니다. URL은 정적 페이지 라우팅과 충돌합니다. 따라서 이벤트 페이지 또는 정적 페이지에 대한 사용자 지정 라우팅이 필요합니다. – indrarajw