कोडइग्निटर रूट्स: उदाहरण के साथ URL रूटिंग
कोडइग्निटर रूट क्या हैं?
रूट्स URL अनुरोधों का जवाब देने के लिए जिम्मेदार हैं। रूटिंग URL को पूर्व-निर्धारित रूट्स से मेल खाता है। यदि कोई रूट मैच नहीं मिलता है, तो कोड इग्निटर एक अपवाद के रूप में पेज नहीं मिला फेंकता है।
कोडइग्निटर में रूट नीचे दिए गए सूत्र का उपयोग करके परिभाषित किए जाते हैं:
example.com/Controller/Method/Parameter/
यहाँ,
- नियंत्रक - नियंत्रक नाम से मैप किया जाता है जिसे URL पर प्रतिक्रिया देनी चाहिए।
- विधि - नियंत्रक में उस विधि से मैप की जाती है जिसे URI अनुरोध का जवाब देना चाहिए।
- पैरामीटर - यह अनुभाग वैकल्पिक है.
कोडइग्निटर रूट्स उदाहरण
आइये अब व्यावहारिक URL रूटिंग पर नजर डालते हैं CodeIgniter उदाहरण।
निम्नलिखित URL पर विचार करें http://localhost:3000/contacts/edit/1
यहाँ,
- उपरोक्त URL पर प्रतिक्रिया देने वाले नियंत्रक का नाम “संपर्क” है
- नियंत्रक वर्ग संपर्क में विधि "संपादन" है
- संपादन विधि एक पैरामीटर स्वीकार करती है। हमारे उदाहरण के मामले में, विधि को मान “1” दिया जाता है।
हम जो करने की योजना बना रहे हैं उसकी संक्षिप्त पृष्ठभूमि इस प्रकार है:
- मार्ग - रूटिंग URL अनुरोधों का जवाब देने के लिए जिम्मेदार है। कोड इग्निटर रूटिंग URL को पूर्व-निर्धारित रूट से मेल खाता है। यदि रूट मैच नहीं मिलता है तो कोड इग्निटर एक पेज नॉट फाउंड अपवाद फेंकता है।
- नियंत्रक - रूट नियंत्रकों से जुड़े होते हैं। नियंत्रक मॉडल और दृश्यों को एक साथ जोड़ते हैं। मॉडल से डेटा / व्यावसायिक तर्क के लिए अनुरोध और दृश्य प्रस्तुति के माध्यम से परिणाम लौटाते हैं। एक बार जब URL को CodeIgniter में रूट से मिलान कर लिया जाता है, तो इसे एक नियंत्रक सार्वजनिक फ़ंक्शन पर अग्रेषित किया जाता है जो डेटा स्रोत, व्यावसायिक तर्क के साथ इंटरैक्ट करता है और परिणाम प्रदर्शित करने वाला दृश्य लौटाता है।
- दृश्य - दृश्य प्रस्तुति के लिए जिम्मेदार हैं। एक दृश्य आम तौर पर HTML, CSS और का संयोजन होता है Javaलिपियह वह हिस्सा है जो उपयोगकर्ता को वेब पेज दिखाने के लिए जिम्मेदार है। आमतौर पर, प्रदर्शित डेटा आमतौर पर डेटाबेस या किसी अन्य उपलब्ध डेटा स्रोत से प्राप्त किया जाता है।
वास्तविक दुनिया की परियोजना पर राउटर को लागू करने का तरीका जानने के लिए, हम मान लेंगे कि हम संपर्क विवरण प्रबंधित करने के लिए एक एप्लिकेशन बना रहे हैं। निम्न तालिका उन URL को दिखाती है जिनके साथ काम किया जाएगा।
| एस / एन | यूआरएल | मार्ग | नियंत्रक | विधि |
|---|---|---|---|---|
| 1 | / | $ मार्ग['डिफ़ॉल्ट_कंट्रोलर'] | स्वागत | अनुक्रमणिका |
| 2 | /संपर्क | $ मार्ग['संपर्क'] | संपर्क | अनुक्रमणिका |
| 3 | /संपर्क/बनाएँ | $ मार्ग['बनाएँ'] | संपर्क | बनाना |
| 4 | /संपर्क/संपादन/आईडी | $ मार्ग['संपादन/:id'] | संपर्क | संपादित |
| 5 | /संपर्क/अद्यतन/आईडी | $ मार्ग['अपडेट/:id'] | संपर्क | अद्यतन |
| 6 | /संपर्क/हटाएँ/आईडी | $ मार्ग['हटाएँ/:id'] | संपर्क | हटाना |
हम ऊपर दी गई तालिका के आधार पर अपने एप्लिकेशन के रूट बनाएंगे। हमने URL, CodeIgniter रूट को परिभाषित किया है, और उन्हें संबंधित नियंत्रक और विधि नामों से मैप किया है।
एप्लिकेशन के लिए URL रूटिंग बनाना
आइए अपने ट्यूटोरियल प्रोजेक्ट के लिए CodeIgniter 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'; डिफ़ॉल्ट नियंत्रक Welcome को परिभाषित करता है।
- $route['contacts'] = 'contacts'; एक संपर्क मार्ग को परिभाषित करता है जो संपर्क नियंत्रक में index विधि को कॉल करता है
- $route['create'] = 'contacts/create'; एक रूट क्रिएट को परिभाषित करता है जो संपर्क नियंत्रक को इंगित करता है और क्रिएट विधि को कॉल करता है।
- $route['edit/:id'] = 'contacts/edit'; एक रूट संपादन को परिभाषित करता है जो id का एक पैरामीटर स्वीकार करता है और संपर्क नियंत्रक की संपादन विधि को इंगित करता है
- $route['update/:id'] = 'contacts/update'; एक रूट अद्यतन को परिभाषित करता है जो id का एक पैरामीटर स्वीकार करता है और Contacts वर्ग की अद्यतन विधि को इंगित करता है।
- $route['delete/:id'] = 'contacts/delete'; एक रूट डिलीट को परिभाषित करता है जो id के पैरामीटर को स्वीकार करता है और संपर्क नियंत्रक की डिलीट विधि को इंगित करता है।
निम्न तालिका ऊपर परिभाषित मार्गों से प्राप्त संबंधित URL दिखाती है
| एस / एन | मार्ग | संगत यूआरएल |
|---|---|---|
| 1 | $route['default_controller'] = 'स्वागत है'; | http://localhost:3000 |
| 2 | $route['संपर्क'] = 'संपर्क'; | 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 |
अब जबकि हमने रूट्स को कवर कर लिया है तो आइए संपर्क नियंत्रक बनाएं जो रूट्स में निर्दिष्ट क्रियाओं पर प्रतिक्रिया देगा।
CodeIgniter में 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');
}
}
यहाँ,
- क्लास संपर्क CI_Controller का विस्तार करता है {..} हमारे नियंत्रक वर्ग को परिभाषित करता है और CI_Controller वर्ग का विस्तार करता है जो CodeIgniter के साथ आता है।
- ऊपर परिभाषित विधियाँ हमारे द्वारा परिभाषित रूट्स के अनुरूप हैं और डिलीट जैसे पैरामीटर्स वाले $id का पैरामीटर स्वीकार करते हैं
- ध्यान दें कि फ़ंक्शन तीन (3) दृश्य लोड करते हैं। हेडर और फ़ुटर सभी विधियों के लिए सामान्य हैं। मध्य दृश्य क्रिया के लिए बहुत विशिष्ट है, यानी डिलीट फ़ंक्शन के लिए डिलीट करें फ़ंक्शन बनाने के लिए एक दृश्य बनाएँ, आदि। याद रखने वाली एक और महत्वपूर्ण बात यह है कि दृश्य संपर्क उपनिर्देशिका से लोड किए जाते हैं।
कोडइग्निटर दृश्य
वेब ब्राउज़र में पैरामीटर्स के साथ हमारे CodeIgniter रूट्स का परीक्षण करने से पहले हमें अभी भी एक और कदम उठाने की आवश्यकता है। आइए उपरोक्त कंट्रोलर विधियों के लिए संगत दृश्य बनाएं।
निम्न छवि दर्शाती है कि आपका एप्लिकेशन कैसा दिखेगा
एप्लिकेशन/व्यूज़ में निम्नलिखित फ़ाइलें बनाएँ
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
दृश्य 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 नेटवर्क से बर्मा 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/
आप नए संपर्क और संपर्क संपादित करें लिंक पर क्लिक कर सकते हैं और देख सकते हैं कि क्या होता है
सारांश
- CI में रूट URL अनुरोधों का जवाब देने के लिए जिम्मेदार होते हैं। रूटिंग URL को पूर्व-निर्धारित रूट से मेल खाता है। यदि कोई CodeIgniter रूट मैच नहीं मिलता है, तो CodeIgniter अपवाद के रूप में पेज नहीं मिला फेंकता है।
- CI रूटिंग URL अनुरोधों का जवाब देने के लिए जिम्मेदार है। रूटिंग URL को पूर्व-निर्धारित रूट से मेल कराती है।
- नियंत्रक मॉडल और दृश्यों को एक साथ जोड़ते हैं। मॉडल से डेटा / व्यावसायिक तर्क के लिए अनुरोध करते हैं और दृश्य प्रस्तुति के माध्यम से परिणाम लौटाते हैं।
- प्रस्तुतिकरण के लिए दृश्य जिम्मेदार होते हैं। एक दृश्य आम तौर पर HTML, CSS और का संयोजन होता है Javaस्क्रिप्ट।
- इस ट्यूटोरियल में, हमने सीखा कि वास्तविक दुनिया के उदाहरण अनुप्रयोग के लिए CodeIgniter में रूट्स कैसे बनाएं और रूटिंग की मूल बातें शामिल कीं, जिन्हें आपको CodeIgniter का विकास शुरू करने के लिए जानना आवश्यक है।


