2011-12-28 2 views
2

나는 Yii를 배우고있어 URL 라우팅 문제가있다. 나는yii 프레임 워크 : URL 라우팅

class PageController extends Controller 
{ 
public function actionIndex() 
{ 

    echo 'index'; 
} 
    public function actionGetPage($page = '') 
{ 
      echo $page; 
} 

을 다음과 같이 컨트롤러를 가지고 설정에서/main.php

'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(
          'page'=>'page/index', 
          '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
     ), 
    ), 

어떻게 내가

+0

'page/'=> 'page/getPage'를 규칙 하단에 추가하고 http://www.yiiframework.com/doc을 읽으십시오. /guide/1.1/en/topics.url –

답변

8

그것을 할 수있는 방법에 : 를 경로 구성에서, 당신은 같은이 있어야합니다

'page/<key>' => 'page/index', 

을 다음과 같이) (actionIndex을 정의

public function actionIndex($key) { 
    echo $key; 
... 

주에서 요구하는 추가 매개 변수를 actionView .... URL에서 사용되는 것과 동일합니다.

0
"정보"가 작동합니다 http://localhost/page/About 및 인쇄를 사용할 때 내가 너무 URL 규칙을 설정

모든 페이지를 처리하는 쉬운 기능을 만들려고하십니까? 또는 About (정보) 페이지가 작동하도록 하시겠습니까?

당신이 할 경우이 :

public function actionAbout() { 
    // code goes here 
} 

로컬 호스트/페이지에 액세스 할 수 있습니다 actionAbout에서 호출되는보기/약

페이지 컨트롤러는/페이지/일과를 만드는 것입니다/about은 당신의 행동 이름으로 정의됩니다. 따라서 조치 후 아무 것도 URL의 이름이됩니다. 따라서 :

public function actionTestingThis() { 
    // code goes here 
} 

는/페이지/testingThis YII가하는 낙타 표기법에 접근 할 수 있고 그래서 TestingThis에서 처음으로 T는 소문자로 도착 될 것입니다.

질문에 대한 답변이 있습니까?