まず、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'=>'path',
'ルール'=>array(
'/'=>'/index',
'<コントローラー:w+>/<アクション:w+>'=>'<コントローラー>/<アクション>',
)、
)、
その場合、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が
/の形式で設定されているため
http://www.bkjia.com/PHPjc/532691.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532691.html技術記事まず、config/main.php で urlManager を設定しない場合の処理は次のようになります (yii 公式 Web サイトより抜粋) ユーザーはアクセス URL http://www.example.com/index.php? を送信します。 r=投稿/ショー...