CodeIgniter設定ルートphp使用例分析

WBOY
リリース: 2016-07-29 09:06:04
オリジナル
990 人が閲覧しました

この記事では、CodeIgniter 設定での Routes.php の使用法を例とともに分析します。参考のために皆さんと共有してください。詳細は次のとおりです:

application/config/routes.php は $route という名前の配列を定義します。これは、デフォルトのルートと 404 ページを設定するだけでなく、いくつかのマッチング メソッドを設定するために使用されます。

デフォルトの設定は次のとおりです:

$route['default_controller'] = "welcome";
$route['404_override'] = '';

ログイン後にコピー

default_controller はデフォルトのコントローラ名を指定し、404_override は 404 が発生したときに呼び出されるコントローラ名を指定します。場合によっては、解析が失敗したり、デフォルトのページに残ったりすることがあります。$this->router を呼び出して、現在解析されているコントローラ名とアクション名を出力できます。たとえば、次のように MY_Controller で出力できます:

var_dump($this->router->fetch_directory());
var_dump($this->router->fetch_class());
var_dump($this->router->fetch_method());

ログイン後にコピー

どのコントローラーが解析されたかを確認し、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 のインデックスはメソッドです。つまり、上記のdetail?user_id=1 がメソッド名に割り当てられます。結果は 404 になります。分離の原則を理解した後、次のように詳細の後にスラッシュを追加して、クラス名とメソッド名が正しいことを確認できます。

コードをコピーします コードは次のとおりです:

$route['admin /detail_(:num)'] = 'admin/detail/?user_id=$1';


しかし、$_GET またはを使用する必要がある場合、3 番目のパラメーターがメソッドに渡されます。 $this->input-> Get 取得では、次のようなパラメーターも処理する必要があります。

コードをコピーします コードは次のとおりです:

parse_str(ltrim($query_string, '?'), $_GET);


2. PATH_INFO の URL 形式を繰り返す ルールの記述は非常に役立ちます。 http://pc.local/admin/1 形式を実装する場合:

コードをコピーします コードは次のとおりです:

$route['admin/(:num)'] = ' admin/detail/$1 ';


パラメータは段落を通じてのみ取得できます。

注: ルーティングは定義された順序で実行されます。上位レベルのルーティングは常に下位レベルのルーティングよりも優先されます。

最後に、サーバー構成に依存せずに設定できる CI を使用することをお勧めします。

CodeIgniter フレームワークに関連するさらなるコンテンツに興味のある読者は、このサイトの特別トピック「codeigniter チュートリアルの概要」をチェックしてください。

この記事が、CodeIgniter フレームワークに基づいた PHP プログラムの設計に役立つことを願っています。

以上、CodeIgniter設定におけるroutesphpの使用例の分析例を内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート