2011-12-28 16 views
2

私はYiiを学び、URLルーティングの問題に陥っています。 私はyiiフレームワーク:URLルーティング

class PageController extends Controller 
{ 
public function actionIndex() 
{ 

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

を次のようにコントローラを持っており、configに/ 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; 
... 

ノートで必要とされる追加のパラメータをアクションビュー...。これは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が小文字ます/でアクセスできるようになります。

あなたの質問にお答えしますか?

関連する問題