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.

  • 🧭 Temel Kural: Bir rota şunlarla eşleşir: URL Bir denetleyiciye, metoda ve isteğe bağlı parametreye.
  • 📐 formül: Bu kalıp, application/config/routes.php dosyasında tanımlanan Denetleyici/Metot/Parametre şeklindedir.
  • ???? Varsayılan Rota: default_controller, hiçbir şey olmadığında ana sayfayı ayarlar. URL Bölüm verilmiştir.
  • 🔢 Parametreler: edit/:id gibi bir rota, id değerini denetleyici yöntemine iletir.
  • 🎛️ denetleyici: Her bir rota, ilgili görünümleri yükleyen bir yönteme karşılık gelir.
  • 🖼️ Paylaşılan Görüşler: Başlık ve altbilgi görünümleri yeniden kullanılır ve her işlem için özel bir orta görünüm bulunur.
  • 404 Kullanım: Eşsiz bir URL Sayfa bulunamadı hatası verir, bu hata 404_override ile geçersiz kılınabilir.

CodeAteşleyici Rotaları

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:

CodeIgniter iletişim uygulaması önizlemesi

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:

CodeIgniter dosya yapısını inceliyor.

Ş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.

SSS

Rotayı edit/:id gibi bir yer tutucu ile tanımlayın ve denetleyici yönteminde eşleşen argümanı kabul edin, örneğin edit($id). CodeIgniter sınavı geçti. URL Bu tartışmanın bir bölümünü ele alalım.

CodeIgniter, sayfa bulunamadı hatası veriyor ve 404 sayfasını gösteriyor. Bunun yerine özel bir hata sayfası görüntülemek için 404_override'ı kendi denetleyicinize yönlendirebilirsiniz.

site_url() tam bir URL oluşturur. URL Temel URL'nizden ve rotadan gelen bilgilere göre, site taşınsa veya temel yol değişse bile bağlantılar çalışmaya devam eder. Bunun için şunlara ihtiyaç vardır: URL Yardımcı programın önce yüklenmesi gerekiyor.

Evet. Kişiler gibi bir kaynak adından yola çıkarak, yapay zeka REST kurallarına uygun olarak eşleşen denetleyici yöntemleriyle dizin oluşturma, oluşturma, düzenleme, güncelleme ve silme rotaları üretebilir. Parametre adlarını onaylayın.

Başlık ve altbilgiyi ayrı ayrı yüklemek, her sayfa görünümünde aynı düzenin tekrarlanmasını önler. Her yöntem önce paylaşılan başlığı, ardından belirli bir içerik görünümünü ve son olarak da paylaşılan altbilgiyi yükler.

Bu yazıyı şu şekilde özetleyin: