CodeAteşleyici Rotaları: URL Örnekle Yönlendirme
⚡ Akıllı Özet
Codeateşleyici URL Rota haritaları URL İsteğe bağlı bir parametreyle birlikte bir denetleyiciye ve metoda. Rotalar routes.php dosyasında tanımlanır, bu nedenle temiz bir URL `contacts/edit/1` gibi bir komut, `Contacts` denetleyicisinin `edit` yöntemini çalıştırır ve bu yöntem başlık, içerik ve altbilgi görünümlerini yükler.

All ON XNUMX İmplant Tedavisi Nasıl Uygulanır? CodeAteşleme Yolları?
Rotalar, aşağıdakilere yanıt vermekten sorumludur: URL istekler. Yönlendirme, isteklerle eşleşir. URL Önceden tanımlanmış rotalara. Eğer eşleşen bir rota bulunamazsa, CodeIgniter, sayfa bulunamadı hatası veriyor.
Rotalar içinde CodeAteşleyiciler aşağıdaki formül kullanılarak tanımlanır:
example.com/Controller/Method/Parameter/
İşte:
- Denetleyici, yanıt vermesi gereken denetleyici adıyla eşleştirilir. URL.
- Bu metot, URI isteğine yanıt vermesi gereken denetleyicideki metoda eşlenir.
- Parametre – bu bölüm isteğe bağlıdır.
CodeAteşleyici Rotaları Örneği
Şimdi pratik bir örneğe bakalım. URL yönlendirme Codeateşleyici Örnek olarak, aşağıdakileri ele alalım. URL: http://localhost:3000/contacts/edit/1
İşte:
- Yukarıdaki talebe yanıt veren kontrol cihazının adı URL "İletişim" anlamına gelir.
- Contacts denetleyici sınıfındaki metodun adı "edit"tir.
- Düzenleme yöntemi bir parametre kabul eder. Örneğimizde, yönteme "1" değeri iletilir.
İşte yapmayı planladığımız şeyin kısa bir arka planı:
- Yönlendirme – yönlendirme şuna yanıt verir URL istekleri. CodeAteşleyici yönlendirmesi şunlarla eşleşiyor: URL Önceden tanımlanmış rotalara. Eğer eşleşen bir rota bulunamazsa, CodeIgniter, sayfa bulunamadı hatası veriyor.
- Kontrolörler – Rotalar denetleyicilere bağlıdır. Denetleyiciler modelleri ve görünümleri bir araya getirir. Modelden veri ve iş mantığı ister ve sonuçları görünümün sunumu aracılığıyla döndürür. Bir kez URL Bir rotayla eşleştirildiğinde, veri kaynağı ve iş mantığıyla etkileşime giren ve görünümü döndüren bir denetleyici genel işlevine iletilir.
- Görünümler – sunumdan görüşler sorumludur. Bir görünüm genellikle HTML, CSS ve JavaSenaryoBu bölüm, web sayfasını kullanıcıya görüntülemekten sorumludur. Genellikle görüntülenen veriler veritabanından veya başka bir veri kaynağından alınır.
Gerçek dünya projesinde rotaların nasıl uygulanacağını öğrenmek için, iletişim bilgilerini yönetmek için bir uygulama oluşturduğumuzu varsayıyoruz. Aşağıdaki tablo, rotaların nasıl uygulanacağını göstermektedir. URLÇalışacağımız kişiler bunlar.
| S / N | URL | Rota | kontrolör | Yöntem |
|---|---|---|---|---|
| 1 | / | $rota['default_controller'] | Hoşgeldiniz | indeks |
| 2 | /kişiler | $rota['kişiler'] | İletişim | indeks |
| 3 | /kişiler/oluştur | $rota['oluştur'] | İletişim | yaratmak |
| 4 | /kişiler/düzenle/kimlik | $rota['düzenle/:id'] | İletişim | düzenleme |
| 5 | /kişiler/güncelleme/kimlik | $rota['güncelleme/:id'] | İletişim | güncelleştirme |
| 6 | /kişiler/sil/kimlik | $rota['sil/:id'] | İletişim | silmek |
Yukarıdaki tabloya göre uygulamamızın rotalarını oluşturacağız. Tanımladığımız rotalar şunlardır: URLs CodeIgniter rotalarını belirledim ve bunları ilgili denetleyici ve metot adlarına eşleştirdim.
Oluşturma URL Uygulama için yönlendirme
Haydi birlikte yaratalım. Codeateşleyici URL Eğitim projemiz için yönlendirme ayarları. application/config/routes.php dosyasını açın ve yönlendirmeleri aşağıdaki gibi değiştirin:
$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;
İşte:
- $route['default_controller'] = 'hoş geldiniz'; Varsayılan denetleyiciyi tanımlar Hoş Geldiniz.
- `$route['contacts'] = 'contacts';` ifadesi, Contacts denetleyicisindeki index yöntemini çağıran bir contacts rotası tanımlar.
- `$route['create'] = 'contacts/create';` ifadesi, Kişiler denetleyicisine işaret eden ve `create` yöntemini çağıran bir `create` rotası tanımlar.
- `$route['edit/:id'] = 'contacts/edit';` ifadesi, `id` parametresini alan ve `Contacts` denetleyicisinin `edit` yöntemine işaret eden bir `edit` rotası tanımlar.
- `$route['update/:id'] = 'contacts/update';` ifadesi, `id` parametresini alan ve `Contacts` sınıfının `update` yöntemine işaret eden bir `update` rotası tanımlar.
- `$route['delete/:id'] = 'contacts/delete';` ifadesi, `id` parametresini alan ve `Contacts` denetleyicisinin `delete` yöntemine işaret eden bir silme rotası tanımlar.
Aşağıdaki tabloda ilgili bilgiler gösterilmektedir. URLYukarıda tanımlanan rotalardan türetilenler:
| S / N | Rota | uyan URL |
|---|---|---|
| 1 | $route['default_controller'] = 'hoş geldiniz'; | http://localhost:3000 |
| 2 | $route['contacts'] = 'kişiler'; | http://localhost:3000/contacts |
| 3 | $route['create'] = 'kişiler/oluştur'; | http://localhost:3000/contacts/create |
| 4 | $route['edit/:id'] = 'kişiler/düzenle'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['update/:id'] = 'kişiler/güncelleme'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = 'kişiler/sil'; | http://localhost:3000/contacts/delete/1 |
Rota tanımlarını tamamladığımıza göre, rotalarda belirtilen eylemlere yanıt verecek olan Contacts denetleyicisini oluşturalım. application/controllers/Contacts.php klasöründe Contacts.php adında yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin:
<?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'); } }
İşte:
- `class Contacts extends CI_Controller {…}` denetleyici sınıfımızı tanımlar ve birlikte gelen `CI_Controller` sınıfını genişletir. CodeAteşleyici.
- Yukarıda tanımlanan yöntemler, tanımladığımız rotalara karşılık gelir ve delete gibi parametre içeren yöntemler $id parametresini kabul eder.
- Fonksiyonların üç görünüm yüklediğine dikkat edin. Başlık ve altbilgi tüm yöntemler için ortaktır. Ortadaki görünüm eyleme özgüdür, yani silme fonksiyonu için silme ve oluşturma fonksiyonu için oluşturma. Unutulmaması gereken bir diğer önemli nokta ise görünümlerin kişiler alt dizininden yüklenmesidir.
CodeIgniter Görüşleri
Test edebilmemiz için henüz bir adım daha atmamız gerekiyor. CodeIgniter, web tarayıcısında parametrelerle yönlendirme yapar. Yukarıdaki denetleyici yöntemlerine karşılık gelen görünümleri oluşturalım. Aşağıdaki resim, uygulamanın nasıl görüneceğini göstermektedir:
application/views klasöründe aşağıdaki dosyaları oluşturun:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
application/views klasörünün içine contacts adında yeni bir klasör oluşturun (application/views/contacts) ve içine aşağıdaki dosyaları oluşturun:
index.php create.php edit.php
Dosya yapınız aşağıdaki gibi olmalıdır:
Şimdi header.php dosyasını güncelleyelim:
<!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>
İşte:
- Yukarıdaki HTML kodu, Bulma CSS'ini bir CDN'den yükler.
Aşağıda footer.php dosyasının kodu yer almaktadır:
</div> </div> </section> </body> </html>
Şimdi de kişiler için index.php, edit.php ve create.php dosyalarının kodunu ekleyelim:
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>
Yapılan tüm değişiklikleri kaydedebilirsiniz. Aşağıdakileri açın. URL Web tarayıcınızda: http://localhost:3000/contacts/Yeni Kişi Ekle ve Kişiyi Düzenle bağlantılarına tıklayarak neler olduğunu görebilirsiniz.


