2011-12-28 162 views
2

我正在學習Yii並陷入了URL路由問題。 我有一個控制器如下yii框架:網址路由

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>', 
     ), 
    ), 

我怎麼可以設置URL規則所以當我使用http://localhost/page/About它應該工作,並打印「關於」

+0

嘗試在規則的底部添加'page/'=>'page/getPage',也許閱讀http://www.yiiframework.com/doc /guide/1.1/en/topics.url – 2011-12-28 01:45:55

回答

8

在辦法做到這一點: 在你的路由配置,你應該是這樣的:

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

,並定義的actionIndex()如下:

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

注意所要求的額外的參數actionView ...。這將與URL中使用的相同。

0

您是否正在設法處理所有頁面?或者只是爲了讓關於頁面工作?

如果你這樣做:

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

是獲取actionAbout稱爲將在本地主機/網頁訪問視圖/約

頁面控制器是什麼使/頁/工作和/約由您的行爲的名稱定義。因此,該操作之後的任何內容都將成爲URL中的名稱。因此:

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

將可訪問在/頁/ testingThis Yii確實camelcase,所以在TestingThis的第一個T獲得小寫。

這是否回答你的問題?