この記事では、CodeIgniter 構成 Route.php の使用例を分析します。参考のために皆さんと共有してください。詳細は次のとおりです:
Application/config/routes.php は $route という名前の配列を定義します。これはデフォルトのルートと 404 ページを設定し、いくつかの一致するメソッドを設定するために使用されます。
デフォルトの構成は次のとおりです:
リーリーdefault_controller はデフォルトのコントローラー名を指定し、404_override は 404 が発生したときに呼び出されるコントローラー名を指定します。場合によっては、解析が失敗したり、デフォルトのページに残ったりすることがあります。$this->router を呼び出して、現在解析されているコントローラ名とアクション名を出力できます。たとえば、次のように MY_Controller で印刷できます:
リーリーどのコントローラーが解析されるかを決定し、Router.php と URI.php の URL 構成、サーバー構成、およびデバッグを確認します。
$route 配列では、ワイルドカード (:num、:any) と正規表現を使用して書き換えルールを設定することもできます。いくつかの簡単な例を次に示します。
1. http://pc.local/admin/detail_1.htm リクエストを http://pc.local/admin/detail.htm?user_id=1 に解析して処理します。
Codeigniter は、クエリ文字列を含むルールの書き換えをサポートしていません。このルールは次のようになります。
コードをコピーします コードは次のとおりです: $route['admin/detail_(:num)'] = 'admin/detail?user_id=$1';
ただし、実際には有効ではありません。プログラムは admin/detail?user_id=1 と一致し、それを「/」で区切ります。インデックスは 0 であり、1 はメソッド名です。上記の詳細?user_id はメソッド名に =1 が割り当てられており、結果はご想像のとおり 404 になります。分離の原則を理解した後、次のように詳細の後にスラッシュを追加して、クラス名とメソッド名が正しいことを確認できます。
コードをコピーします コードは次のとおりです: $route['admin/detail_(:num)'] = 'admin/detail/?user_id=$1';
ただし、この時点では、パラメータの取得に問題があります。$_GET または $this->input->get を使用してメソッドに渡す必要がある場合は、パラメータ:
コードをコピーします コードは次のとおりです: parse_str(ltrim($query_string, '?'), $_GET);
2. PATH_INFO の URL 形式書き換えルールは比較的サポートされています。 http://pc.local/admin/1 形式を実装する場合:
コードをコピーします コードは次のとおりです: $route['admin/(:num)'] = 'admin/detail/$1';
パラメータは段落を通じてのみ取得できます。
注: ルートは定義された順序で実行されます。上位レベルのルートは常に下位レベルのルートより優先されます。
CodeIgniter フレームワークに関連するさらなるコンテンツに興味のある読者は、このサイトの特別トピック「codeigniter チュートリアルの概要」をチェックしてください
この記事が、CodeIgniter フレームワークに基づく皆様の PHP プログラム設計に役立つことを願っています。
興味があるかもしれない記事: