Codeเส้นทางจุดประกาย: URL การกำหนดเส้นทางพร้อมตัวอย่าง
สิ่งที่เป็น Codeเส้นทางจุดประกายไฟ?
เส้นทางต่างๆ มีหน้าที่รับผิดชอบในการตอบสนองต่อ URL คำขอ การกำหนดเส้นทางตรงกับ URL ไปยังเส้นทางที่กำหนดไว้ล่วงหน้า หากไม่พบเส้นทางที่ตรงกัน ให้ดำเนินการต่อ CodeIgniter แสดงข้อผิดพลาด "ไม่พบหน้าเว็บ"
เส้นทางใน Codeตัวจุดประกายไฟถูกกำหนดโดยใช้สูตรด้านล่างนี้:
example.com/Controller/Method/Parameter/
ที่นี่
- ตัวควบคุม - จะถูกแมปกับชื่อตัวควบคุมที่ควรตอบสนองต่อ URL.
- วิธีการ – ถูกแมปกับวิธีการในตัวควบคุมที่ควรตอบสนองต่อคำขอ URI
- พารามิเตอร์ – ส่วนนี้เป็นทางเลือก
Codeตัวอย่างเส้นทางการจุดประกาย
ต่อไปเรามาดูตัวอย่างที่เป็นรูปธรรมกัน URL เส้นทางเข้า Codeเครื่องทำให้ลุกไหม้ ตัวอย่าง.
พิจารณาดังต่อไปนี้ URL http://localhost:3000/contacts/edit/1
ที่นี่
- ชื่อของตัวควบคุมที่ตอบสนองต่อข้อความข้างต้น URL คือ “รายชื่อติดต่อ”
- วิธีการในผู้ติดต่อคลาสคอนโทรลเลอร์คือ "แก้ไข"
- วิธีการแก้ไขยอมรับพารามิเตอร์ ในกรณีตัวอย่างของเรา ค่า "1" จะถูกส่งผ่านไปยังเมธอด
ต่อไปนี้เป็นข้อมูลโดยย่อเกี่ยวกับสิ่งที่เราวางแผนจะทำ:
- การกำหนดเส้นทาง – การกำหนดเส้นทางมีหน้าที่ในการตอบสนองต่อ URL การร้องขอ Codeการกำหนดเส้นทางของ Igniter ตรงกับ URL ไปยังเส้นทางที่กำหนดไว้ล่วงหน้า หากไม่พบเส้นทางที่ตรงกัน CodeIgniter แสดงข้อผิดพลาด "ไม่พบหน้าเว็บ"
- ตัวควบคุม – เส้นทางต่างๆ เชื่อมโยงกับตัวควบคุม ตัวควบคุมทำหน้าที่เชื่อมต่อโมเดลและวิวเข้าด้วยกัน โดยจะดึงข้อมูล/ตรรกะทางธุรกิจจากโมเดลและส่งผลลัพธ์กลับมาผ่านทางวิว เมื่อ... URL ได้รับการจับคู่กับเส้นทางใน Codeใน Igniter ข้อมูลจะถูกส่งต่อไปยังฟังก์ชันสาธารณะของคอนโทรลเลอร์ ซึ่งจะโต้ตอบกับแหล่งข้อมูล ตรรกะทางธุรกิจ และส่งคืนมุมมองที่แสดงผลลัพธ์
- เข้าชม – มุมมองมีหน้าที่นำเสนอ มุมมองมักจะเป็นการผสมผสานระหว่าง HTML, CSS และ Javaต้นฉบับส่วนนี้เป็นส่วนรับผิดชอบในการแสดงหน้าเว็บให้ผู้ใช้ดู โดยทั่วไปข้อมูลที่แสดงมักจะดึงมาจากฐานข้อมูลหรือแหล่งข้อมูลอื่นที่มีอยู่
เพื่อเรียนรู้วิธีการใช้งานเราเตอร์ในโครงการจริง เราจะสมมติว่าเรากำลังสร้างแอปพลิเคชันสำหรับจัดการรายละเอียดการติดต่อ ตารางต่อไปนี้แสดงให้เห็นถึง... URLผู้ที่จะร่วมงานด้วย
| S / N | URL | เส้นทาง | ตัวควบคุม | วิธี |
|---|---|---|---|---|
| 1 | / | $เส้นทาง['default_controller'] | ยินดีต้อนรับ | ดัชนี |
| 2 | /รายชื่อผู้ติดต่อ | $เส้นทาง['ผู้ติดต่อ'] | ช่องทางการติดต่อ | ดัชนี |
| 3 | /ติดต่อ/สร้าง | $เส้นทาง['สร้าง'] | ช่องทางการติดต่อ | สร้าง |
| 4 | /รายชื่อผู้ติดต่อ/แก้ไข/id | $เส้นทาง['แก้ไข/:id'] | ช่องทางการติดต่อ | แก้ไข |
| 5 | /ผู้ติดต่อ/อัปเดต/id | $เส้นทาง['อัพเดต/:id'] | ช่องทางการติดต่อ | ปรับปรุง |
| 6 | /รายชื่อผู้ติดต่อ/ลบ/รหัส | $เส้นทาง['ลบ/:id'] | ช่องทางการติดต่อ | ลบ |
เราจะสร้างเส้นทางของแอปพลิเคชันของเราโดยอิงจากตารางด้านบน เราได้กำหนดไว้แล้ว URLs, Codeกำหนดเส้นทาง Igniter และแมปเส้นทางเหล่านั้นไปยังชื่อคอนโทรลเลอร์และเมธอดที่เกี่ยวข้อง
การสร้าง 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'] = 'ยินดีต้อนรับ'; กำหนดคอนโทรลเลอร์เริ่มต้นยินดีต้อนรับ
- $route['contacts'] = 'รายชื่อผู้ติดต่อ'; กำหนดเส้นทางผู้ติดต่อซึ่งเรียกวิธีดัชนีในตัวควบคุมผู้ติดต่อ
- $route['create'] = 'รายชื่อผู้ติดต่อ/สร้าง'; กำหนดเส้นทางที่สร้างซึ่งชี้ไปยังตัวควบคุมผู้ติดต่อและเรียกวิธีการสร้าง
- $route['edit/:id'] = 'รายชื่อติดต่อ/แก้ไข'; กำหนดการแก้ไขเส้นทางซึ่งยอมรับพารามิเตอร์ของ id และชี้ไปที่วิธีการแก้ไขของตัวควบคุมผู้ติดต่อ
- $route['update/:id'] = 'รายชื่อผู้ติดต่อ/อัพเดต'; กำหนดการอัปเดตเส้นทางซึ่งยอมรับพารามิเตอร์ของ id และชี้ไปที่วิธีการอัปเดตของคลาสผู้ติดต่อ
- $route['delete/:id'] = 'รายชื่อติดต่อ/ลบ'; กำหนดเส้นทางลบซึ่งยอมรับพารามิเตอร์ของ id และชี้ไปที่วิธีการลบของตัวควบคุมผู้ติดต่อ
ตารางต่อไปนี้แสดงรายละเอียดที่เกี่ยวข้อง URLที่ได้มาจากเส้นทางที่กำหนดไว้ข้างต้น
| S / N | เส้นทาง | ตรงกัน URL |
|---|---|---|
| 1 | $route['default_controller'] = 'ยินดีต้อนรับ'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'รายชื่อผู้ติดต่อ'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'รายชื่อผู้ติดต่อ/สร้าง'; | 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 |
ตอนนี้เราได้ครอบคลุมเส้นทางแล้ว มาสร้างตัวควบคุมผู้ติดต่อที่จะตอบสนองต่อการดำเนินการที่ระบุในเส้นทางกันดีกว่า
สร้างไฟล์ Route ใหม่ใน CodeIgniter จะถูกเพิ่มเข้าไปในไฟล์ Contacts.php ใน application/controllers/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');
}
}
ที่นี่
- คลาส contacts ขยายคลาส CI_Controller {..} กำหนดคลาสคอนโทรลเลอร์ของเราและขยายคลาส CI_Controller ที่มาพร้อมกับ Codeตัวจุดไฟ
- วิธีการที่กำหนดไว้ข้างต้นสอดคล้องกับเส้นทางที่เรากำหนดไว้ และวิธีที่มีพารามิเตอร์เช่นลบจะยอมรับพารามิเตอร์เป็น $id
- สังเกตว่าฟังก์ชันโหลดสาม (3) มุมมอง ส่วนหัวและส่วนท้ายเป็นเรื่องธรรมดาสำหรับทุกวิธี มุมมองตรงกลางมีความเฉพาะเจาะจงมากกับการกระทำ เช่น ฟังก์ชันลบเพื่อลบ สร้างมุมมองสำหรับสร้างฟังก์ชัน ฯลฯ สิ่งสำคัญอีกประการหนึ่งที่ต้องจำไว้ก็คือ มุมมองต่างๆ จะถูกโหลดจากไดเร็กทอรีย่อยผู้ติดต่อ
Codeมุมมองผู้จุดประกาย
เรายังต้องดำเนินการอีกขั้นตอนหนึ่งก่อนที่จะสามารถทดสอบได้ Codeการกำหนดเส้นทาง (Routes) ด้วยพารามิเตอร์ในเว็บเบราว์เซอร์โดยใช้ Igniter มาสร้างมุมมอง (View) ที่สอดคล้องกับเมธอดคอนโทรลเลอร์ข้างต้นกัน
รูปภาพต่อไปนี้แสดงให้เห็นว่าแอปพลิเคชันของคุณจะมีลักษณะเป็นอย่างไร
สร้างไฟล์ต่อไปนี้ในแอปพลิเคชัน/มุมมอง
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
สร้างไดเร็กทอรีใหม่ของผู้ติดต่อใน view 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 ข้างต้นโหลด Burma CSS จากเครือข่าย CDN
ต่อไปนี้เป็นโค้ดสำหรับ 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/
คุณสามารถคลิกที่ลิงก์ผู้ติดต่อใหม่และแก้ไขผู้ติดต่อและดูว่าเกิดอะไรขึ้น
สรุป
- เส้นทางใน CI มีหน้าที่รับผิดชอบในการตอบสนองต่อ URL คำขอ การกำหนดเส้นทางตรงกับ URL ไปยังเส้นทางที่กำหนดไว้ล่วงหน้า หากไม่มี Codeจากนั้นจึงพบการจับคู่เส้นทาง Igniter CodeIgniter แสดงข้อผิดพลาด "ไม่พบหน้าเว็บ"
- CI Routing มีหน้าที่รับผิดชอบในการตอบสนองต่อ URL คำขอ การกำหนดเส้นทางตรงกับ URL ไปยังเส้นทางที่กำหนดไว้ล่วงหน้า
- ตัวควบคุมจะติดโมเดลและมุมมองเข้าด้วยกัน การขอข้อมูล/ตรรกะทางธุรกิจจากโมเดลและส่งคืนผลลัพธ์ผ่านการนำเสนอมุมมอง
- ผู้ชมมีหน้าที่นำเสนอ มุมมองมักจะเป็นการผสมผสานระหว่าง HTML, CSS และ Javaต้นฉบับ
- ในบทเรียนนี้ เราได้เรียนรู้วิธีการสร้างเส้นทาง (Routes) ใน Codeบทความนี้ได้ยกตัวอย่างการใช้งาน Igniter ในแอปพลิเคชันจริง และครอบคลุมพื้นฐานของการกำหนดเส้นทาง (routing) ที่คุณจำเป็นต้องรู้เพื่อเริ่มต้นพัฒนาแอปพลิเคชันping Codeตัวจุดไฟ


