Codeigniter

Tạo mới controller trong CodeIgniter.

Trong CodeIgniter, tất cả các file controller đều được viết trong file application/controllers.

Trong đó xuất hiện dòng code: if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);

Đây là dòng security bảo vệ file nó không cho truy cập thẳng vào file mà phải thông qua 1 file index.php ở mức ngoài cùng.

hell_controler

Tiếp đến là lớp CI_Controller của CI, tất cả các controller đều phải kế thừa CI_Controller thì mới sử dụng được thư viện của CI. Tên của Controller phải viết hoa.

Hàm index là là 1 phương thức hay action của controller Hello.

Nếu các bạn chưa biết controller là gì thì có thể tham khảo tại đây

Truyền biến vào Controller

Trong mô hình MVC của các Framwork, biến truyền vào theo phương thức GET đều có dạng “domain.com/controller/action/parameter1/parameter2/…

truyền biến

Để gọi ra action trên ta gõ: Localhost/CodeIgniter-3.1.13/hello/other

Để truyền tham số ta gõ: Localhost/CodeIgniter-3.1.13/hello/index/123/hello

kết quả

Kết quả sẽ được trả ra như trên.

Xác định controller mặc định

Controller mặc định là controller sẽ được gọi khi trên url bn không gọi đến 1 controller nào.

Ta vào file application/config/routes.php rồi sửa ở câu lệnh $route['default_controller']

controller mặc định

Hàm khởi tạo

Trong lập trình hướng đối tượng thì tất cả các lớp đối tượng có hàm khởi tạo, hàm này sẽ chạy đầu tiên khi bạn khởi tạo một đối tượng mới. Trong PHP hàm khởi tạo được quy ước là đặt trùng tên với tên Lớp hoặc là bạn đặt tên __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ì trong 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
{
    // Hàm khởi tạo
    function __construct() {
        // Gọi đến hàm khởi tạo của cha
        parent::__construct();
    }
  
    public function index()
    {
        echo 'Freetuts.net';
    }
}

Bài viết tham khảo

Tổng quan về CodeIgniter

Tìm hiểu về CRUD

Giới thiệu về mô hình MVC

Leave a Reply

Your email address will not be published. Required fields are marked *