CodeIgniterのコントローラー、ビューのルーティング:例を通して学ぶ
⚡ スマートサマリー
この CodeIgniter のサンプルでは、ルーティング、コントローラー、ビューがどのように連携して動作するかを示す小さなアプリケーションを構築します。Composer で新しいプロジェクトが作成され、ルートマップが作成されます。 URLコントローラーメソッドに渡され、各メソッドはビューをロードし、ブラウザにHTMLを返します。

このチュートリアルでは、以下のトピックについて学習します。
- ルーティング – ルーティングは、 URL リクエスト。ルーティングは URL 定義済みのルートに。一致するルートが見つからない場合は、 CodeIgniterがページが見つからない例外をスローします。
- コントローラ – ルートはコントローラーにリンクされています。コントローラーはモデルとビューを結合します。コントローラーはモデルからデータとビジネスロジックを要求し、ビューの表示で結果を返します。 URL ルートにマッチングされたデータは、コントローラーのパブリック関数に転送されます。この関数はデータソースとビジネスロジックと連携し、結果を表示するビューを返します。
- ビュー – ビューはプレゼンテーションを担当します。ビューは通常、HTML、CSS、 Javaスクリプト。この部分は、ユーザーにウェブページを表示する役割を担います。通常、表示されるデータはデータベースまたはその他の利用可能なデータソースから取得されます。
新規作成方法 Codeイグナイタープロジェクト
Composer を使用して新しいプロジェクトを作成します。PHP の組み込みサーバーを使用するため、次のような追加のソフトウェアは必要ありません。 アパッチこのチュートリアルでは、 Windows オペレーティングシステムに合わせて、CドライブにSitesフォルダを作成しました。ご自身にとって適切なディレクトリであればどれでも使用できます。
コマンドラインまたはターミナルを開き、次のコマンドを実行します。
cd C:\Sites
これから作成します CodeComposer を使用した Igniter プロジェクト。以下のコマンドを実行してください。
composer create-project CodeIgniter/framework ci-app
ここに:
- 上記のコマンドは新しい CodeIgniterプロジェクトバージョン3(執筆時点では最新の安定版3.1.9)をci-appというディレクトリに配置します。
コマンドの実行が完了すると、ターミナルに以下のような結果が表示されます。
新しく作成されたプロジェクトディレクトリ「ci-app」に移動するには、次のコマンドを実行します。
cd ci-app
それでは、PHPに組み込まれているWebサーバーを起動してください。
php -S localhost:3000
ここに:
- 上記のコマンドは、ポート3000で動作する組み込みのPHPサーバーを起動します。
ウェブブラウザを開き、次のサイトにアクセスしてください。 URL: http://localhost:3000/次のページが表示されます。
上記のページが表示されていれば、インストールは成功です。おめでとうございます。 Codeイグナイターこのページは、application/views/welcome_message.php にあるビューによってレンダリングされ、対応するコントローラーは application/controllers/Welcome.php にあります。
Codeイグナイタールーティング
今のところ、私たちのアプリケーションには 1 つの機能しかありません URLこれはホームページです。このセクションでは、ホームセクションをカスタマイズし、新しいものをいくつか作成します。 URLさまざまな要求に応答する。
まずはホームページのルートから始めましょう。以下のパスにあるroutesファイルを開いてください。
application/config/routes.php
以下の内容が表示されるはずです。
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
ここに:
- $route['default_controller'] = 'welcome'; は、URI リクエストに応答するデフォルトのコントローラーを定義します。
- $route['404_override'] = ”; を使用すると、404 エラー用のカスタム ルートを定義できます。404 エラーは、ページが見つからない場合に発生します。 CodeIgniterにはエラーに対するデフォルトのハンドラが用意されていますが、必要に応じて独自のハンドラを定義することもできます。
- $route['translate_uri_dashes'] = FALSE; を使用すると、ハイフンをアンダースコアに変換できます。このオプションについては、ルートの仕組みを解説する際に説明します。 Code点火装置。
それでは、最初に開いたときに表示されたホームページを表示する役割を担うコントローラーメソッドを見ていきましょう。 http://localhost:3000/次のファイルを開いてください。
application/controllers/Welcome.php
以下のコードが表示されるはずです。
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
ここに:
- defined('BASEPATH') OR exit('No direct script access allowed'); は、index.php ファイルを経由せずにコントローラー クラスに直接アクセスすることを防ぎます。MVC パラダイムでは、すべてのリクエストに単一のエントリ ポイントがあり、 CodeIgniterはindex.phpです。このコードは、index.phpを経由しないすべてのリクエストをブロックします。
- class Welcome extends CI_Controller {…} は、親クラス CI_Controller を継承するクラス Welcome を定義します。
- public function index() は、ホームページを開いたときにデフォルトで呼び出される公開関数を定義します。
- $this->load->view('welcome_message'); は、application/views/welcome_message.php にある welcome_message ビューを読み込みます。
これまでは箱から出たものだけを調べてきました CodeIgniter。それでは、いくつか変更を加えましょう。独自のホームページを作成し、デフォルトのページを置き換えます。application/views/home.php に新しいファイルを作成し、以下のコードを追加してください。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> CodeIgniter Hello World </h1> </div> </section> </body> </html>
ここに: 上記のHTMLコードは、CDNからBulma CSSフレームワークとFont Awesomeを読み込み、非常に基本的なHTMLドキュメントを作成します。そして、Bulma CSSフレームワークのシンプルなCSSルールを適用します。
以下を開きます URL ブラウザで: http://localhost:3000/。 次の内容が表示されるはずです。
素晴らしい!ホームページの変更に成功しました。次に、ルートを定義しましょう。アプリケーションには、会社概要ページも表示する必要があると仮定します。
ルートを作成する
ルートファイル application/config/routes.php を開き、以下のルートを追加してください。
$route['about-us'] = 'welcome/about_us';
ここに:
- 訪問者が URL /about-us、私たちは指示します CodeIgniter はコントローラー Welcome を探し、メソッド about_us を実行します。
コントローラーを作成する
それでは、コントローラーメソッド about_us を定義しましょう。application/controllers/Welcome.php を開き、以下のメソッドを追加してください。
public function about_us(){
$this->load->view('about_us');
}
ここに:
- 上記のコードは、about_us という関数を定義し、about_us というビューを読み込みます。
ビューの作成
それでは、先ほど参照したビューを作成しましょう。application/views/about_us.php ディレクトリに about_us.php という新しいファイルを作成し、以下のコードを追加してください。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>About CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> About us yap... </h1> </div> </section> </body> </html>
準備完了です。以下を開いてください。 URL ウェブブラウザで: http://localhost:3000/index.php/about-us次のページが表示されます。
上記のページが表示されている場合は、おめでとうございます。シンプルなアプリケーションの作成に成功しました。 Code点火装置。




