2011-09-05 3 views
0

CakePHP 응용 프로그램의 경로를 설정하려고합니다.CakePHP 경로 : 전달 된 매개 변수를 문자열로 분리하기

원하는 URL의 한 예는 /:slug-c-:id/입니다. (예 : example.com/foo-c-1/)

이 URL에는 전달 된 매개 변수가 두 개 있습니다 (:slug:id).
그러나 CakePHP는 두 매개 변수를 :slug-c:id으로 봅니다.

나는이 :slug\-c-:id과 같은 경로를 분리하려고 시도했지만 URL을 작성하기 위해 HTML 도우미를 사용하면 빌드하는 문자열에 \이 포함됩니다. (EG example.com/foo\-c-1/

다른 문자열에서 전달 된 매개 변수와 같은 뭔가를 분리하는 또 다른 방법이 있나요 PHP의 나는 오히려 사용하지 않는 게 좋을 다소 해키 해결책을 찾았지만, 기본적으로 내가 나의 경로를 설정 This is a string with a {$var}adjacent to letters

답변

0

?

/:slug-:cslug-:id/*하고 c

:cslug의 정규 표현식을 설정

이 가진 문제는 내가 HTML 도우미와 URL을 설정할 때마다이 나는이해야 할 일

array(
    'controller' => 'products' 
    'action' => 'index' 
    'slug' => 'Foo' 
    'cslug' => 'c' 
    'id' => 1 
) 
0

으로 만들고 /:slug-:id/으로 만들고 '-c'를 포함하도록 슬러그의 정규식을 설정하십시오.

끝 부분에 ID가있는 슬러그에 대한 욕심 많은 정규식을 설정할 수 있는지 확실하지 않습니다. 또한 Inflector를 사용하여 슬러그를 만드는 경우 (권장 방법), 슬러그가 밑줄로 생성됩니다. 그래서 대신 '_c'를 사용하는 것이 더 좋습니다. http://book.cakephp.org/view/945/Routes-Configuration

: 정규식은 [A-Za-z0-9_]+_c

자세한 내용은 여기 라인을 따라 뭔가해야

관련 문제