나는 cakePHP에서 새롭다, 내 응용 프로그램에서 내 URL을 재작 성하고 싶습니다.Cakephp URL 라우팅
일부 내 컨트롤러의 경우 이동하려고합니다. 등이 내가 쓰기 규칙에 대한
`controller/action/id/slug`.
,
Router::connect(
'/products/:id/:slug', array('controller' => 'products', 'action' => 'view'), array('pass' => array('id'), 'id' => '[0-9]+')
);
나는대로 링크를 쓰고 있어요 ..
echo $this->Html->link($record['Category']['name'], array('controller' => 'categories', 'action' => 'index', 'slug' => $record['Category']['slug']), array('escape' => false));
질문
규칙이 언급 만 응용 프로그램입니다 컨트롤러 및 동작 ie 제품 및 vi ew resp. ?
왜 내 URL (호버 위에 표시)이
controller/action/slug_name
대신controller/action/slug:slug_name
으로 표시됩니까? 동일한 컨트롤러에서나는 다른 URL과 같은
action/id/slug_name
을 재 작성을 사용하려면 또는 어딘가에 내가/action
를 보내거나 어딘가에 난 단지 슬러그action/slug_name
사용합니다. 단일 규칙 만이 모든 사람을 위해 작성 되었습니까? 또는 각 컨트롤러와 동작에 대해 별도의 규칙을 정의해야합니다.모든 컨트롤러에 공통 규칙을 만드시겠습니까?
자세한 내용을 기입하십시오. 나는 설명서를 읽으려고했지만 약간 혼란 스럽다. 내 매개 변수가 내가 언급 한 모든 종류의 유형에 대한 요청을 얻는 방법.
쓰기는 지금은 등
controller/action/param1:param_val1/param2:param_val2,
echo $this->Html->link('Val', array('controller' => 'categories',
'action' => 'index', 'param1' => param_val1, 'param2' => param_val2,),
array('escape' => false));
하고 PARAMS를 얻기 위해 단순한 방법을 사용하고 있습니다. 그러나 나는 더 좋고 더 빠른 움직임과 함께 꽤 명확하고 아름다운 URL을 갖고 싶습니다. 지나가는 슬러그처럼 findBySlug를 직접 가져 오는 것이 좋을 것 같습니다.