CodeIgniter डेटाबेस के साथ काम करना
पिछले ट्यूटोरियल में, हमने CodeIgniter के सक्रिय रिकॉर्ड की मूल बातें शामिल की हैं और डेटाबेस से रिकॉर्ड कैसे डालें, अपडेट करें, डिलीट करें और पढ़ें। इस ट्यूटोरियल में, हम डेटाबेस मॉडल बनाएंगे और डेटाबेस रिकॉर्ड बनाने और अपडेट करने के लिए फॉर्म का उपयोग करेंगे। यदि आप CodeIgniter में डेटाबेस के साथ काम करने के लिए पूरी तरह से नए हैं, तो आपने पिछले ट्यूटोरियल को पढ़ने की सलाह दी है
डेटाबेस कॉन्फ़िगरेशन
हम ट्यूटोरियल प्रोजेक्ट डेटाबेस बनाकर शुरू करेंगे। हम संपर्क विवरण के प्रबंधन के लिए एक सरल डेटाबेस बनाएंगे। हम दो (2) टेबल नाम वाले पाल और शहरों के साथ एक साधारण डेटाबेस बनाएंगे, जिसमें वे रहते हैं। दोस्तों और शहरों के बीच का संबंध प्राथमिक कुंजी के रूप में शहरों में आईडी के साथ एक-से-एक है और सिटी टेबल के रूप में विदेशी तालिकाओं में है। ।
डेटाबेस बनाने के लिए निम्नलिखित स्क्रिप्ट चलाएँ:
CREATE TABLE `pals` (`id` int(11) NOT NULL AUTO_INCREMENT,`city_id` int(11) DEFAULT NULL,`contact_name` varchar(245) DEFAULT NULL,`contact_number` varchar(245) DEFAULT NULL,`email_address` varchar(245) DEFAULT NULL,PRIMARY KEY (`id`));
चलिए अब शहरों की तालिका बनाते हैं
CREATE TABLE `cities` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(245) DEFAULT NULL,PRIMARY KEY (`id`)) ;
CodeIgniter डेटाबेस मॉडल
अब हम अपने डेटाबेस के लिए मॉडल बनाएंगे। मॉडल MVC का M हिस्सा है। मॉडल डेटा एक्सेस, डेटा हेरफेर और व्यावसायिक तर्क से संबंधित है।
CodeIgniter में, प्रत्येक मॉडल को उन तरीकों को परिभाषित करना होगा जो यह समर्थन करेगा। प्रत्येक मॉडल में समान कोड को दोहराने के बजाय, हम ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में विरासत का लाभ उठाएंगे और एक मूल मॉडल वर्ग बनाएंगे जो उन बुनियादी तरीकों को परिभाषित करेगा जिन्हें हम अपने मॉडल का समर्थन करना चाहते हैं।
नीचे दी गई तालिका उन तरीकों को दिखाती है जिन्हें हम परिभाषित करेंगे और डेटा तक कैसे पहुँचा जाएगा।
एस / एन | तरीका | विवरण |
1 | __construct | कंस्ट्रक्टर विधि को परिभाषित करता है जो पैरेंट कंस्ट्रक्टर विधि को कॉल करता है |
२ | सब प्राप्त कर लिया | डेटाबेस से सभी क्षेत्रों और रिकॉर्डों को बिना किसी शर्त के वापस लेता है |
३ | get_by_id | INT नाम की INT प्रकार की प्राथमिक कुंजी का उपयोग कर डेटाबेस से एक पंक्ति को पुनः प्राप्त करता है |
४ | get_where | मापदंड के आधार पर डेटाबेस से सभी क्षेत्रों को पुनः प्राप्त करता है |
५ | डालने | डेटाबेस में एक नया रिकॉर्ड सम्मिलित करता है |
६ | अपडेट करें | INT के नाम की प्राथमिक कुंजी के आधार पर एक मौजूदा डेटाबेस रिकॉर्ड को अपडेट करता है |
। | हटाना | INT नाम की INT प्रकार की प्राथमिक कुंजी के आधार पर डेटाबेस से एक मौजूदा रिकॉर्ड हटाता है |
निम्न छवि वर्ग आरेख और बताती है कि कैसे पाल और शहर के बच्चे मॉडल मूल मॉडल बेसमॉडल से संबंधित हैं।
हम उपरोक्त छवि में वर्णित दो मॉडल बनाएंगे
एप्लिकेशन / मॉडल / BaseModel.php में एक नया वर्ग BaseModel बनाएं
निम्न कोड जोड़ें
db->get($this->table)->result();}public function get_by_id($id) {return $this->db->get_where($this->table, array('id' => $id))->row();}public function get_where($where) {return $this->db->where($where)->get($this->table)->result();}public function insert($data) {return $this->db->insert($this->table, $data);}public function update($id, $data) {$this->db->where('id', $id);$this->db->update($this->table, $data);}public function delete($id) {$this->db->where('id', $id);$this->db->delete($this->table);}}
यहां,
- संरक्षित $ तालिका = ''; एक संरक्षित चर नाम तालिका को परिभाषित करता है। यह निर्दिष्ट करने के लिए संबंधित चाइल्ड क्लास द्वारा पॉपुलेट किया जाएगा कि हमारे बेस मॉडल क्लास के तरीकों को किस तालिका के साथ इंटरैक्ट करना चाहिए।
- सार्वजनिक समारोह __construct () {...} कंस्ट्रक्टर विधि को परिभाषित करता है और पैरेंट क्लास CI_Melel के कंस्ट्रक्टर विधि को निष्पादित करता है।
- get_all () {…} हमारे डेटाबेस के खिलाफ SELECT क्वेरी को चलाने के लिए डेटाबेस लाइब्रेरी और वैरिएबल $ टेबल के मूल्य का उपयोग करता है।
- get_by_id ($ id) {…} डेटाबेस से एक पंक्ति को पुनः प्राप्त करने के लिए विधि को परिभाषित करता है और एक पैरामीटर $ id को स्वीकार करता है जो INT डेटा प्रकार का होना चाहिए।
- get_where ($ जहाँ) {…} उस विधि को परिभाषित करता है जो आपको एक खंड को सेट करने की अनुमति देती है।
- सम्मिलित ($ डेटा) {…} सम्मिलित विधि को परिभाषित करता है और सरणी पैरामीटर $ डेटा को स्वीकार करता है जिसमें डेटाबेस में लिखे जाने वाले मान शामिल होते हैं।
- अद्यतन ($ id, $ डेटा) {…} अद्यतन विधि को परिभाषित करता है और सरणी पैरामीटर $ डेटा को स्वीकार करता है जिसमें डेटाबेस में अपडेट किए जाने वाले मान शामिल होते हैं।
- डिलीट ($ id) {…} डिलीट मेथड को परिभाषित करता है जो $ id के एक पैरामीटर को स्वीकार करता है जो डेटा टाइप INT का होना चाहिए।
अब जब हम मूल मॉडल वर्ग के साथ किया जाता है, तो हमारे पाल मॉडल बनाते हैं
एप्लिकेशन / मॉडल / Pals.php में एक नई फ़ाइल बनाएँ
निम्न कोड जोड़ें
db->where('pals.id', $id);$this->db->select('pals.*,cities.name');$this->db->from('pals');$this->db->join('cities', 'pals.city_id = cities.id');$query = $this->db->get();return $query->row();}public function get_all() {$this->db->select('pals.*,cities.name');$this->db->from('pals');$this->db->join('cities', 'pals.city_id = cities.id');$query = $this->db->get();return $query->result();}}
यहां,
- क्लास पाल्स बेसमॉडल का विस्तार करता है {…} मूल मॉडल बेसमॉडल का विस्तार करता है और स्वचालित रूप से चाइल्ड क्लास के लिए एक्सेस बेसमॉडल में परिभाषित सभी तरीकों को बनाता है।
- संरक्षित $ तालिका = 'पाल्स'; हमारे मूल मॉडल से संबंधित तालिका नाम को परिभाषित करता है
- __construct () {…} पैरेंट कंस्ट्रक्टर को इनिशियलाइज़ करता है
- सार्वजनिक फ़ंक्शन get_by_id ($ id) {…} get_by_id को लागू करता है, जो Pals मॉडल के लिए विशिष्ट कार्यान्वयन प्रदान करता है। Get_by_id के लिए क्वेरी शहर के नाम को शहरों की तालिका से पुनर्प्राप्त करने के लिए एक सम्मिलित का उपयोग करती है
- सार्वजनिक फ़ंक्शन get_all () {…} get_all विधि को ओवरसाइड करता है ताकि पल्स और शहरों की मेज के बीच एक जुड़ाव क्वेरी को लागू किया जा सके
एप्लिकेशन / मॉडल / City.php में एक नई फ़ाइल बनाएं
यहां,
- संरक्षित $ तालिका = 'शहर'; मॉडल डेटाबेस तालिका को परिभाषित करता है।
जैसा कि आप ऊपर दिए गए कोड से देख सकते हैं, Inheritance हमें बहुत समय बचाता है जब CodeIgniter में मॉडल के साथ काम कर रहा है। अगले भाग में हम सीखेंगे
संपर्क प्रबंधक नियंत्रक
अब जब हमने मॉडल बनाए हैं तो चलिए अपने एप्लिकेशन के लिए नियंत्रक बनाते हैं। हम दो नियंत्रकों अर्थात् संपर्क और शहर होगा
शहरों से शुरू करते हैं
एप्लिकेशन / नियंत्रक निर्देशिका में एक नई फ़ाइल City.php बनाएं
निम्न कोड जोड़ें
load->helper('url', 'form');$this->load->library('form_validation');$this->load->model('cities_model');}public function index() {$header['title'] = 'Cities Listing';$data['pals'] = $this->cities_model->get_all();$this->load->view('header',$header);$this->load->view('cities/index', $data);$this->load->view('footer');}public function create() {$header['title'] = 'Create City';$this->load->view('header',$header);$this->load->view('cities/create');$this->load->view('footer');}public function store() {$rules = array(array('field' => 'name','label' => 'City Name','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == TRUE) {$data = array('name' => $this->input->post('name'));$this->cities_model->insert($data);redirect(base_url('cities'));} else {$header['title'] = 'Create City';$this->load->view('header',$header);$this->load->view('cities/create');$this->load->view('footer');}}public function edit($id) {$header['title'] = 'Edit City';$data['city'] = $this->cities_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('cities/edit', $data);$this->load->view('footer');}public function update($id) {$rules = array(array('field' => 'name','label' => 'City Name','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == TRUE) {$data = array('name' => $this->input->post('name'));$this->cities_model->update($id,$data);redirect(base_url('cities'));} else {$header['title'] = 'Edit City';$data['city'] = $this->cities_model->get_by_id($id);$this->load->view('header',$header);$this->load->view('cities/create',$data);$this->load->view('footer');}}public function delete($id) {$header['title'] = 'Delete City';$data['city'] = $this->cities_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('cities/delete', $data);$this->load->view('footer');}public function destroy($id) {$this->cities_model->delete($id);redirect(base_url('cities'));}}
यहां,
- उपरोक्त कोड डेटाबेस से पंक्तियों को बनाने, अद्यतन करने, हटाने और पढ़ने के लिए सभी तरीकों को लागू करता है।
एप्लिकेशन / नियंत्रकों में एक और फ़ाइल संपर्क करें
निम्न कोड जोड़ें
load->helper('url', 'form');$this->load->library('form_validation');$this->load->model('pals_model');}public function index() {$header['title'] = 'Contacts List';$data['pals'] = $this->pals_model->get_all();$this->load->view('header', $header);$this->load->view('contacts/index', $data);$this->load->view('footer');}public function create() {$this->load->model('cities_model');$header['title'] = 'Create Contact';$data['cities'] = $this->cities_model->get_all();$this->load->view('header', $header);$this->load->view('contacts/create', $data);$this->load->view('footer');}public function store() {$rules = array(array('field' => 'contact_name','label' => 'Contact Name','rules' => 'required'),array('field' => 'contact_number','label' => 'Contact Number','rules' => 'required','errors' => array('required' => 'You must provide a %s.',),),array('field' => 'email_address','label' => 'Email Address','rules' => 'required'),array('field' => 'city_id','label' => 'City','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == FALSE) {$this->load->model('cities_model');$header['title'] = 'Create Contact';$data['cities'] = $this->cities_model->get_all();$this->load->view('header', $header);$this->load->view('contacts/create', $data);$this->load->view('footer');} else {$data = array('city_id' => $this->input->post('city_id'),'contact_name' => $this->input->post('contact_name'),'contact_number' => $this->input->post('contact_number'),'email_address' => $this->input->post('email_address'),);$this->pals_model->insert($data);redirect(base_url('contacts'));}}public function edit($id) {$this->load->model('cities_model');$header['title'] = 'Edit Contact';$data['cities'] = $this->cities_model->get_all();$data['pal'] = $this->pals_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('contacts/edit', $data);$this->load->view('footer');}public function update($id) {$rules = array(array('field' => 'contact_name','label' => 'Contact Name','rules' => 'required'),array('field' => 'contact_number','label' => 'Contact Number','rules' => 'required','errors' => array('required' => 'You must provide a %s.',),),array('field' => 'email_address','label' => 'Email Address','rules' => 'required'),array('field' => 'city_id','label' => 'City','rules' => 'required'));$this->form_validation->set_rules($rules);if ($this->form_validation->run() == FALSE) {$this->load->model('cities_model');$header['title'] = 'Create Contact';$data['cities'] = $this->cities_model->get_all();$data['pal'] = $this->pals_model->get_by_id($id);$this->load->view('header', $header);$this->load->view('contacts/edit', $data);$this->load->view('footer');} else {$data = array('city_id' => $this->input->post('city_id'),'contact_name' => $this->input->post('contact_name'),'contact_number' => $this->input->post('contact_number'),'email_address' => $this->input->post('email_address'),);$this->pals_model->update($id, $data);redirect(base_url('contacts'));}}public function delete($id) {$this->load->model('cities_model');$header['title'] = 'Delete Contact';$data['cities'] = $this->cities_model->get_all();$data['pal'] = $this->pals_model->get_by_id($id);$this->load->view('header',$header);$this->load->view('contacts/delete',$data);$this->load->view('footer');}public function destroy($id){$this->pals_model->delete($id);redirect(base_url('contacts'));}}
संपर्क प्रबंधक दृश्य
हमने पहले से ही ट्यूटोरियल में कोडआईग्निटर में रूपों और मान्यता को देखा था। हम उस कोड का उपयोग करेंगे जो हमने पिछले ट्यूटोरियल में विकसित किया था। पूर्णता के लिए, हम पिछले ट्यूटोरियल में बनाए गए कोड को पुन: पेश करेंगे।
हमारे आवेदन के विचार इस प्रकार होंगे
आप नीचे दिए गए लिंक पर क्लिक करके उपरोक्त विचारों के लिए कोड डाउनलोड कर सकते हैं
CodeIgniter संपर्क प्रबंधक दृश्य डाउनलोड
सारांश
इस ट्यूटोरियल में, आप सीखेंगे कि CodeIgniter में मॉडल कैसे बनाएं। हमने बेस-मॉडल बनाकर कोड पुन: प्रयोज्य को बढ़ावा देने के लिए ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में विरासत का लाभ उठाया, जो डालने, पढ़ने, अपडेट करने और हटाने के चार प्रमुख डेटाबेस संचालन को लागू करता है।
हमने एक व्यावहारिक अनुप्रयोग का उपयोग करते हुए अवधारणाओं का प्रदर्शन किया है, और हम आवेदन के लिए अधिक कार्यक्षमता जोड़कर अगले ट्यूटोरियल में ऐसा करना जारी रखेंगे।