まず、config/main.php で urlManager を設定しない場合、プロセスは次のようになります (yii 公式 Web サイトから引用)
ユーザーが URL http://www.example.com/index.php?r=post/show&id=1 にアクセスするリクエストを行うと、Web サーバーはエントリ スクリプトindex.php を実行してこのリクエストを処理します。
エントリ スクリプトはアプリケーション インスタンスを作成して実行します。
アプリケーションは、リクエストと呼ばれるアプリケーションコンポーネントからユーザーのリクエストの詳細を取得します。
アプリケーションは、urlManager と呼ばれるアプリケーション コンポーネントを利用して、要求されたコントローラーとアクションを決定します。この例では、コントローラーは PostController クラスを表し、アクションは show であり、その実際の意味はコントローラーによって決まります。
アプリケーションは、ユーザー要求をさらに処理するために、要求されたコントローラーのインスタンスを作成します。コントローラーは、アクション ショーがコントローラー クラスの actionShow という名前のメソッドを指していると判断します。次に、アクション (アクセス制御、ベンチマークなど) に関連付けられたフィルターを作成して維持します。フィルターで許可されている場合、アクションが実行されます。
アクションはデータベースから ID 1 の Post モデルを読み取ります。
アクションは、Post モデルを通じて show という名前のビューをレンダリングします。
ビューは、Post モデルのプロパティを読み取り、表示します。
ビューはいくつかのウィジェットを実行します。
ビューのレンダリング結果がレイアウトに挿入されます。
アクションはビューのレンダリングを完了し、ユーザーに表示します。
ただし、urlManager を次のように構成した場合:
'urlManager'=>array(
'urlFormat'=>'パス',
'ルール'=>array(
'
'
'
)、
)、
したがって、http://www.example.com/index.php?r=post/show&id=1 に直接アクセスして show アクションの結果を取得することはできません。まず、このリクエストはdefaultControllerのindexActionに渡されて処理されます。defaultControllerがPostControlerでない場合は混乱するかもしれません。その場合は、showAction の代わりに、indexAction の内容が返されます。
実際、これへのアクセスは非常に簡単で、http://www.example.com/index.php/post/show?id=1
だけです。urlManager が