• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

CodeIgniter 4- Controller trong CodeIgniter

tiendat3791

New Member
Trong bài viết trước bạn và Công ty thiết kế website OTVINA đã tìm hiểu về cấu trúc thư mục và chương trình đầu tiên trong Codeigniter, trong bài viết này chúng ta sẽ tiếp tục tìm hiểu chi tiết hơn về Controller trong CodeIgniter.
Học Codeigniter- Controller trong PHP
Nếu học tới CodeIgniter chắc hẳn bạn đã biết về mô hình MVC trong PHP, trong CI phần Controller cũng tương tự được sử dụng để xử lý dữ liệu và điều khiển cho toàn bộ ứng dụng web khi thiết kế website.
Nội dung bài viết hôm nay sẽ bao gồm:

  • Cách tạo Controller trong CodeIgniter
  • Truyền biến trong Controller như thế nào?
  • Cấu hình Controller mặc định
  • ... và 1 số nội dung liên quan trong Controller của CodeIgniter
[h=2]Tạo Controller mới cho CodeIgniter[/h]Toàn bộ controller trong CodeIgniter được đặt trong thư mục application/controller, mặc định bạn sẽ thấy 1 file welcome.php bên trong thư mục controller, tương tự như bài trước chúng ta sẽ tạo 1 file bên trong là hello.php và nhập vào nội dung bên dưới:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Hello extends CI_Controller{
public function index(){
echo "Bài 3- Controller trong CodeIgniter";
}
public function goodbye(){
echo "Tạm biệt bạn, hẹn gặp bạn ở bài tiếp theo!";
}
}
?>Dòng if(!defined('BASEPATH')) exit('No direct script access allowed'); nghĩa là không cho phép truy cập trực tiếp vào file mà phải chạy qua index.php, nó giúp cho file của bạn bảo mật hơn.
Tiếp theo là tên lớp "Hello", trong CI bạn phải đặt tên lớp trùng với tên file của nó nhưng phải viết hoa chữ cái đầu tiên và tất cả các controller phải kế thừ từ controller CI_Controller, đây là controller do CI xây dựng sẵn, nếu không extends nó chúng ta không thể sử dụng các thư viện có sẵn của CI.
Phương thức index() là phương thức mặc định được gọi của CodeIgniter, nghĩa là khi bạn gọi tới class nó sẽ tự động gọi phương thức này.
[h=2]Gọi Controller[/h]Như bài viết trước đã tìm hiểu, để gọi tới controller bạn vào trình duyệt gõ địa chỉ: http://localhost/duongdan/index.php/tencontroller/tenphuongthuc/
Đối với trường hợp trên, chúng ta gọi như sau: http://localhost/codeigniter/index.php/hello/index/ . Tuy nhiên bạn hoàn toàn có thể bỏ phần /index/ ở sau cùng đường dẫn bạn hoàn toàn có thể bỏ đi vì controller mặc định sẽ tự gọi phương thức index() nếu không tồn tại nó trên thanh địa chỉ.
Tuy nhiên nếu bạn muốn chạy phương thức goodbye() bạn phải gõ đầy đủ đường dẫn: http://localhost/codeigniter/index.php/hello/goodbye/ kết quả in ra màn hình sẽ là:"Tạm biệt, hẹn gặp bạn ở bài tiếp theo!".
[h=2]Truyền biến vào 1 Controller[/h]Để truyền biến trên COdeigniter bạn chỉ cần truyền vào địa chỉ theo cấu trúc sau: http://localhost/duongdan/index.php/tencontroller/tenphuongthuc/bien1/bien2/bien3/. Nghĩa là giá trị các biến sẽ được đặt sau phương thức, như vậy chúng ta hoàn toàn có thể lấy được giá trị từ phương thức GET, để nhận được biến chúng ta sẽ truyền các biến vào khi tạo phương thức.
Ví dụ:
<?php
if(!defined('BASEPATH')) exit('Không cho phép truy cập trực tiếp');
class Hello extends CI_Controller{
public function index($hoten=''){
echo "Xin chào bạn ".$hoten;
}
}
?>Vậy nếu khi gọi chúng ta gõ: http://localhost/codeigniter/index.php/hello/index/Tịnh
Thì kết quả trên màn hình của chúng ta sẽ là
Xin chào bạn Tịnhtrong trường hợp muốn truyền vào nhiều biến bạn chỉ cần viết tiếp ra sau giá trị các biến khác, và nhớ khởi tạo biến khi bạn tạo phương thức.
Lưu ý: Khi tạo ra phương thức( function) nếu truyền biến vào bạn phải gán giá trị mặc định cho nó, vì trường hợp nếu người dùng truy cập http://localhost/codeigniter/index.php/hello/index/ thì CI sẽ không xác định được biến $hoten và như vậy chúng ta sẽ gặp phải lỗi.
Ví dụ 2:
<?php
if(!defined('BASEPATH')) exit('Không cho phép truy cập trực tiếp');
class Hello extends CI_Controller{
public function index($hoten='',$tuoi=0){
echo "Chào các bạn tôi là: ".$hoten. " năm nay tôi ".$tuoi." tuổi";
}
}Vậy nếu chúng ta chạy:

[h=2]Cấu hình Controller mặc định[/h]Mặc định khi bạn không gọi controller nào thì Codeigniter sẽ chạy vào controller welcome( cái file welcome.php ban đầu có), vì vậy nếu bạn muốn mặc định khi chạy vào địa chỉ http://localhost/codeigniter/index.php mà nó gọi ngay vào controller hello.php ( hoặc controller khác mà bạn muốn) thì bạn làm như sau:

  • Mở file application/config/routes.php
  • Tìm dòng $route['default_controller'] = “welcome”; sau đó sửa welcome thành controller bạn muốn đặt làm mặc định.
  • Sau đó bạn chỉ việc chạy http://localhost/codeigniter/ để gọi ra controller đó <3
[h=2]Hàm khởi tạo[/h]Mặc định trong PHP khi làm với hướng đối tượng thì hàm khởi tạo sẽ đặt trùng tên với tên lớp hoặc đặt là __construct(). Nếu trong Controller bạn muốn sử dụng hàm khởi tạo thì bắt buộc bạn phải gọi đến hàm khởi tạo của cha nó (CI_Controller), vì PHP nếu hàm con kế thừa hàm cha mà hàm con có hàm khởi tạo thì nó sẽ chạy hàm khởi tạo của con chứ không chạy hàm khởi tạo của cha, mà trong hàm khởi tạo của cha lại chứa những đoạn code thiết lập hệ thống cho CI nên bắt buộc phải chạy nó.
class Hello extends CI_Controller
{
function __construct() {
// Gọi đến hàm khởi tạo của cha
parent::__construct();
}
public function index()
{
echo 'Hello from Vũ Công Tịnh';
}
}Vậy là trong bài này chúng ta đã tìm hiểu những kiến thức chính để có thể bắt đầu với Controller trong CodeIgniter, hy vọng bài viết sẽ hữu ích với bạn, đừng quên like và share để động viên OTVINA nhé các bạn <3

Nguồn : :eek:3
 

Facebook Comments

Similar threads
Thread starter Title Forum Replies Date
T CodeIgniter 16- Quản lý cookie trong CI Mã nguồn web 0
T CodeIgniter 7- Tìm hiểu Helpers và Libraries là gì? Mã nguồn web 0
T CodeIgniter 15- Thực hành đăng nhập/đăng xuất Mã nguồn web 0
T CodeIgniter 18- Helper language, đa ngôn ngữ trong CI Mã nguồn web 0
T CodeIgniter 9- Form validation trong Codeigniter Mã nguồn web 0
T CodeIgniter 10- Thư viện upload file PHP 1
T CodeIgniter 2 - Hướng dẫn cài đặt CodeIgniter PHP 2
T Codeigniter 19- Helper date trong Codeigniter Tin tức CNTT 1
Admin Share code tin tức bằng codeigniter Mã nguồn web 0
C Arclab MailList Controller 13.2 Tut, tool, mmo 0
caonguyenpc Thủ thuật Hướng dẫn tải và cài đặt Driver cạc mạng PC, laptop - Download Ethernet Controller Al Thủ thuật máy tính 0
Admin Valve giới thiệu Steam Controller: gamepad thế hệ mới, 2 trackpack, màn hình cảm ứng, hack được Tin tức CNTT 0
Admin Giữ giá trị trong menu đổ xuống trong form php - Php keep dropdown value after form submit PHP 0
katy Android MobiFone tặng nhiều ưu đãi trong "Tháng tiêu dùng số" Điện thoại di động 8
katy Android Quản lý thuê bao tất cả trong một với My MobiFone phiên bản 4.0 Điện thoại di động 4
cuongpro9x Cách mở tài khoản số đẹp VPBank miễn phí chỉ trong 5 phút trên điện thoại Trò chuyện linh tinh 0
nutevnn Help Nhờ hướng dẫn fix html trong PHP PHP 0
H Phần mềm PC Phần mềm số một trong việc chặn các web đen, web game độc hại gây ảnh hưởng đến con trẻ Phần mềm 0
H Hướng dẫn Phụ huynh chật vật lo cho con học online? Chìa khoá xua tan nỗi lo của phụ huynh Trẻ em nói chung và con em trong gia đình công nhân nói riêng phải t Phần mềm 0
V Giới hạn dung lượng ảnh tải lên trong Xenforo 2 Xenforo 0
haopro NONSTOP 2022 Cần Thơ Gạo Trắng Nước Trong - Chân Dài Quyến Rũ Bờ Mông Âm nhạc 0
Admin Hướng dẫn fix lỗi không xóa được bôi đen trong Word bằng phím Backspace - Backspace doesn't delete highlighted text word Sử dụng, chia sẻ, hỏi đáp 4
haopro Nonstop Tâm Trạng 2021 Gọi Tên Em Trong Cơn Mê - Nghe Đi Gòi Bê Âm nhạc 0
tunglamed Gói data D15, gói cước vàng trong làng data Điện thoại di động 0
haopro Nonstop Nhạc Bay Phòng 2020 Em Ơi Hãy Ôm Anh Trong Từng Cơn Phê Âm nhạc 0
Thichquangboom Event tháng 9 đặc biệt dành cho Uploader: Tìm kiếm những “gương mặt vàng” trong làng uploader Tin tức CNTT 0
Admin 1000 cụm từ giao tiếp thông dụng nhất trong tiếng anh và kinh nghiệm học tiếng anh xuất chúng Góc thành viên học tập 2
Admin Share nhạc chuông của Thuận Hương trong phim Gái Ngàn Đô Trò chuyện linh tinh 1
tunglamed MobiFone khuyến mãi 20% nạp tiền trực tuyến trong mùa dịch Điện thoại di động 0
tunglamed MobiFone hỗ trợ khách hàng trong mùa dịch COVID19 Điện thoại di động 0
Admin Hướng dẫn kích hoạt GMP trong php Windows Server 2012 - How to enable php GMP functions VPS & Dedicated Server 0
Admin Hướng dẫn tạo nút thoát ứng dụng trong Xamarin Forms Android, iOS 0
Admin Hướng dẫn chỉ cho phép chọn 1 trong nhiều checkbox html HTML & CSS 0
Admin Hướng dẫn làm tròn giống Excel trong C# Windows Forms C# / C++ 0
Admin Hướng dẫn cấm sao chép và chuột phải trong C# Windows Forms C# / C++ 0
Admin Hướng dẫn chỉ cho phép nhập số trong input textbox C# C# / C++ 0
Admin Hướng dẫn tạo hiệu ứng chữ chạy, ảnh chạy với thẻ Marquee trong HTML5 Mã nguồn wap 0
T Hướng dẫn làm việc local repo và remote repo trong Git Tin tức CNTT 0
T Xu thế ứng dụng AI trong lĩnh vực kinh doanh Tin tức CNTT 0
T Blockchain ứng dụng trong phương tiện tự lái Tin tức CNTT 0
T Hướng dẫn tìm (lookup) dữ liệu trong bảng tính (Excel/GoogleSheets) Tin tức CNTT 0
cuongpro9x Share Hosting tại HawkHost chỉ 0.9$ trong hôm nay Hosting / Domain 3
B IBM thí điểm ứng dụng Blockchain trong bảo lãnh ngân hàng Tin tức CNTT 0
T Những ngôn ngữ phổ biến trong lập trình game Tin tức CNTT 0
T Đây là cách DeFi đột phá trong tài chính Tin tức CNTT 0
T Blockchain phổ cập trong đào tạo lập trình Trung Quốc Tin tức CNTT 0
T Dự tính Samsung ưu tiên công nghệ Blockchain trong 10 năm Tin tức CNTT 0
T LinkedIn: Công nghệ Blockchain là 1 trong 10 kỹ năng hàng đầu Tin tức CNTT 0
T Blocckhain ứng dụng trong doanh nghiệp thế nào Tin tức CNTT 0
T Ông Satoshi Nakamoto có phải kỹ sư trong tù ? Tin tức CNTT 0

Similar threads

New posts New threads New resources

Back
Top