2011-09-05 7 views

답변

-1

system/classes/kohana/request/client/internal.php 파일을 응용 프로그램 폴더 (application/classes/kohana/request/client/internal.php)에 복사하십시오.

$action = str_replace('-', '_', $request->action()); 
+2

시스템 파일을 절대 편집하면 안됩니다. 그렇지 않으면 사이트를 새 버전으로 업그레이드 할 때 문제가 발생합니다. 대신 클라이언트/내부 파일을 확장하고 응용 프로그램 폴더에서 수정하십시오. 계단식 파일 때문에 코어 파일을 확장하고 편집 할 수 있습니다. http://kohanaframework.org/3.2/guide/kohana/files – Luwe

+0

고마워요 @ 루웨, 핵심 파일을 확장하여 다시 구현했습니다. –

+1

더 좋은 방법이 있습니다. 방법을 보려면 zombor의 대답을 참조하십시오. – Ikke

1

아니, 당신은 당신의 경로에 정규식 매개 변수를 지정해야합니다

$action = $request->action(); 

하려면 : 1에서 106라인을 변경합니다.

경로에있는 문서를 읽고,이 설명 : http://kohanaframework.org/3.2/guide/kohana/routing#regex zombor이 경로의 정규식 변경했다 것처럼

+0

컨트롤러와 액션 이름에 대해 ~ to _의 자동 번역에 의존하지 않는다면 제쳐두고이 제안이 더 적절할 것입니다. 좀 더 명확한 라우팅을 선호하기 때문에 이것을 제안했습니다. 자동 변환을 원하면 람다 매개 변수가 가장 좋은 방법입니다. – zombor

1

:

경로 :

Route::set('default', 'controller/<url>)', array('url' => '[-a-z0-9]+')) 
    ->defaults(array(
     'controller' => 'page', 
     'action' => 'index', 
)); 

컨트롤러 :

Class Controller_Page { 

    public function action_index() 
    { 
     $url = $this->request->param('url'); 
    } 
} 

array('url' => '[-a-z0-9]+')이 부분은 url param.

+0

귀하의 방법은 모든 요청을 하나의 행동으로 라우팅합니다. 매우 간단한 응용 프로그램에서 작동하지만 복잡한 하나의 경우에는 쓸모가 없습니다. – matino

+0

@matino : op의 예가 될 것입니다. 이 작업을 수행하는 더 좋은 방법이 있다는 것을 이해하는 동안 나는 운영자가 원하는 것을 성취하려고 노력하고 있습니다. 'domain.com/controller/this-is-a-slug'에 대한 모든 요청을 정의 된 컨트롤러로 라우트하므로 왜 downvote를받을 자격이 있는지 확신 할 수 없습니다. – RJD22