Codeイグナイタールート: URL ルーティングの例
⚡ スマートサマリー
Codeイグナイター URL ルーティングマップ URL コントローラーとメソッドに、オプションのパラメーターを渡します。ルートは routes.php で定義されるため、 URL contacts/edit/1 のように、Contacts コントローラーの edit メソッドを実行し、ヘッダー、コンテンツ、フッターのビューを読み込みます。

何ですか Codeイグナイタールート?
ルートは、 URL リクエスト。ルーティングは URL 定義済みのルートに。一致するルートが見つからない場合は、 CodeIgniterがページが見つからない例外をスローします。
ルート Code点火装置は、以下の式を用いて定義されます。
example.com/Controller/Method/Parameter/
ここに:
- コントローラーは、応答するコントローラー名にマッピングされます。 URL.
- メソッドは、URIリクエストに応答するコントローラー内のメソッドにマッピングされます。
- パラメータ – このセクションはオプションです。
CodeIgniter ルートの例
それでは、実践的な例を見てみましょう。 URL ルーティング Codeイグナイター 例。以下を考えてみましょう。 URL: http://localhost:3000/contacts/edit/1
ここに:
- 上記に応答するコントローラーの名前 URL 「連絡先」です。
- Contacts コントローラークラスのメソッドは「edit」です。
- 編集メソッドはパラメータを受け取ります。この例では、値「1」がメソッドに渡されます。
私たちが計画していることの簡単な背景は次のとおりです。
- ルーティング – ルーティングは以下に対応します URL リクエスト。 CodeIgniter ルーティングは URL 定義済みのルートに。一致するルートが見つからない場合は、 CodeIgniterがページが見つからない例外をスローします。
- コントローラ – ルートはコントローラーにリンクされています。コントローラーはモデルとビューを結合します。コントローラーはモデルからデータとビジネスロジックを要求し、ビューのプレゼンテーションを介して結果を返します。 URL ルートにマッチすると、データソースとビジネスロジックとやり取りしてビューを返すコントローラーのパブリック関数に転送されます。
- ビュー – ビューはプレゼンテーションを担当します。ビューは通常、HTML、CSS、 Javaスクリプトこの部分は、ユーザーにウェブページを表示する役割を担います。通常、表示されるデータはデータベースまたは他のデータソースから取得されます。
実際のプロジェクトでルーティングを実装する方法を学ぶために、連絡先の詳細を管理するアプリケーションを作成していると仮定します。次の表は、 URL私たちが協力していくのは、
| S / N | URL | ルート | コントローラー | 方法 |
|---|---|---|---|---|
| 1 | / | $route['デフォルト_コントローラー'] | ようこそ | index |
| 2 | / contacts | $route['連絡先'] | 連絡先 | index |
| 3 | /連絡先/作成 | $route['作成'] | 連絡先 | 作ります |
| 4 | /連絡先/編集/id | $route['編集/:id'] | 連絡先 | edit |
| 5 | /連絡先/更新/id | $route['update/:id'] | 連絡先 | update |
| 6 | /連絡先/削除/id | $route['削除/:id'] | 連絡先 | 削除 |
上記の表に基づいて、アプリケーションのルートを作成します。 URLs、 CodeIgniterのルートを設定し、それぞれのコントローラー名とメソッド名にマッピングしました。
作成 URL アプリケーションのルーティング
創造しよう Codeイグナイター URL チュートリアルプロジェクトのルーティング設定です。application/config/routes.phpを開き、以下の内容に合わせてルートを変更してください。
$route['default_controller'] = 'welcome'; $route['contacts'] = 'contacts'; $route['create'] = 'contacts/create'; $route['edit/:id'] = 'contacts/edit'; $route['update/:id'] = 'contacts/update'; $route['delete/:id'] = 'contacts/delete'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
ここに:
- $route['default_controller'] = 'ようこそ'; デフォルトのコントローラー「Welcome」を定義します。
- $route['contacts'] = 'contacts'; は、Contacts コントローラーの index メソッドを呼び出す contacts ルートを定義します。
- $route['create'] = 'contacts/create'; は、Contacts コントローラーを指し、create メソッドを呼び出す create ルートを定義します。
- $route['edit/:id'] = 'contacts/edit'; は、id のパラメータを受け取り、Contacts コントローラの edit メソッドを指すルート edit を定義します。
- $route['update/:id'] = 'contacts/update'; は、id のパラメータを受け取り、Contacts クラスの update メソッドを指すルート update を定義します。
- $route['delete/:id'] = 'contacts/delete'; は、id のパラメータを受け取り、Contacts コントローラの delete メソッドを指すルート delete を定義します。
以下の表は、それぞれの URL上記で定義された経路から派生したs:
| S / N | ルート | 対応する URL |
|---|---|---|
| 1 | $route['default_controller'] = 'ようこそ'; | http://localhost:3000 |
| 2 | $route['連絡先'] = '連絡先'; | http://localhost:3000/contacts |
| 3 | $route['作成'] = '連絡先/作成'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = '連絡先/編集'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = '連絡先/更新'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = '連絡先/削除'; | http://localhost:3000/contacts/delete/1 |
ルートについて説明したので、次にルートで指定されたアクションに応答する Contacts コントローラーを作成しましょう。application/controllers/Contacts.php に Contacts.php という新しいファイルを作成し、以下のコードを追加してください。
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Contacts extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); } public function index() { $this->load->view('header'); $this->load->view('contacts/index'); $this->load->view('footer'); } public function create() { $this->load->view('header'); $this->load->view('contacts/create'); $this->load->view('footer'); } public function edit($id) { $this->load->view('header'); $this->load->view('contacts/edit'); $this->load->view('footer'); } public function update($id) { $this->load->view('header'); $this->load->view('contacts/update'); $this->load->view('footer'); } public function delete($id) { $this->load->view('header'); $this->load->view('contacts/delete'); $this->load->view('footer'); } }
ここに:
- class Contacts extends CI_Controller {…} は、コントローラー クラスを定義し、付属の CI_Controller クラスを拡張します。 Code点火装置。
- 上記で定義したメソッドは、定義したルートに対応しており、delete などのパラメータを持つメソッドは、$id というパラメータを受け入れます。
- これらの関数は3つのビューを読み込むことに注目してください。ヘッダーとフッターはすべてのメソッドで共通です。中央のビューはアクションごとに異なり、削除機能の場合は「削除」、作成機能の場合は「作成」と表示されます。また、これらのビューは連絡先サブディレクトリから読み込まれることも覚えておくと良いでしょう。
Codeイグナイターの見解
テストを行うには、あと1ステップ必要です CodeIgniter のルートを Web ブラウザでパラメータ付きで表示します。上記のコントローラ メソッドに対応するビューを作成しましょう。次の画像は、アプリケーションの外観を示しています。
application/views ディレクトリに以下のファイルを作成してください。
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
application/views ディレクトリ内に contacts という新しいディレクトリ (application/views/contacts) を作成し、その中に以下のファイルを作成します。
index.php create.php edit.php
ファイル構造は以下のようになります。
それでは、header.php ファイルを更新しましょう。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CodeIgniter Routes</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">CI Contacts v1</h1>
<h2 class="subtitle">CodeIgniter contacts management app</h2>
<div class="columns">
<div class="column is-one-quarter">
<aside class="menu">
<p class="menu-label">
General
</p>
<ul class="menu-list">
<li><a class="is-active" href="#">Dashboard</a></li>
<li><a href="<?=site_url('contacts/create')?>">New Contact</a></li>
<li><a href="<?=site_url('contacts/edit/1')?>">Edit Contacts</a></li>
</ul>
<p class="menu-label">
Settings
</p>
<ul class="menu-list">
<li><a href="#">SMS</a></li>
<li><a href="#">Email</a></li>
</ul>
</aside>
</div>
ここに:
- 上記のHTMLコードは、CDNからBulma CSSを読み込みます。
以下はfooter.phpファイルのコードです。
</div> </div> </section> </body> </html>
それでは、連絡先用のindex.php、edit.php、create.phpファイルのコードを追加しましょう。
index.php <div class="column">Index content goes here...</div> edit.php <div class="column">Edit content goes here...</div> create.php <div class="column">Create content goes here...</div>
変更内容をすべて保存できます。以下を開いてください。 URL ウェブブラウザで: http://localhost:3000/contacts/「新規連絡先」と「連絡先の編集」のリンクをクリックして、何が起こるか確認してみてください。


