[CodeIgniter 3.x] Tìm hiểu Controller Codeigniter

   Codeigniter 3.x |   12-06-2016 |   1255

Trong bài trước chúng ta đã tìm hiểu sơ qua cấu trúc Codeigniter, ở bài viết  này mình sẽ giúp các bạn tìm hiểu sơ qua controller trong Codeigniter. Nội dung sẽ bao gồm những phần như sau

  • Controller là gì ?
  • Tạo mới ứng dụng Hello Word trong codeigniter
  • Truyền biến vào controller
  • Xác định controller mặc định
  • Xóa đường dẫn index.php

1. Controller là gì ?

Controller là bộ điều khiển trung tâm của ứng dụng của bạn. Tại Controller sẽ tiếp nhận các request từ người dùng gửi lên và nó sẽ phân tích các thao tác đó để truy xuất đến đến ứng dụng của bạn

Ví dụ: Ứng dụng của bạn có chức năng đăng nhập vào ứng dụng. Khi đó phía người dùng sẽ gửi 1 request đăng nhập lên hệ thống và controller sẽ trả cho bạn 1 form đăng nhập.

2. Tạo Mới Controller Trong Codeigniter

Để tạo mới 1 controller chúng ta truy cập vào thư mực application/controllers. Tại đây chúng ta nhìn thấy có sẵn 1 file tên Welcome.php khi download source code về. Bây giờ chúng ta tạo mới 1 file có tên Hello.php với nội dung như sau:

Giải thích:

  • Dòng if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’); là dòng Security bảo vệ file của các bạn, nó không cho truy cập thẳng vào file mà phải thông qua file index.php ở ngoài cùng ứng dụng của bạn
  • Lớp Hello là tên Controller của chúng ta, nó kế thừa lớp CI_Controller của hệ thống Codeigniter, tất cả các Controller đều phải kế thừa CI_Controller thì mới sử dụng được các thư viện của CI và tên lớp phải viết hoa chữ cái đầu tiên
  • Phương thức index của controller,. đây là một hàm mặc định của tất cả các controller trong Codeigniter nghĩa là nếu đường dẫn bạn chỉ gõ example.com/index.php/hello thì mặc định nó sẽ chạy file index

Một số quy tắc khi tạo controller

  1. Codeigniter 3.x. Tất cả các chữ cái của tên file phải viết Hoa : Hello.php
  2. Codeigniter 2.x. Tất cả các chữ cái của tên file phải viết Hoa : hello.php
  3. Ngoài ra khi các bạn khai báo 1 action hay còn gọi là phương thức thì không nên đặt tên : list() . Codeigniter không cho phép bạn tạo 1 action với tên là như vậy

3. Truyền tham số vào Controller

Trong mô hình MVC của các Framework, tham số vào theo phương thức GET đều có dạng như sau: “example.com/controller/action/thamso1/thamso2/…”,

Codeigniter cũng cũng không ngoại lệ để truyền tham số vào Controller bạn  sẽ có đường dẫn : “example.com/controller/action/thamso1/thamso2/…”,

Tại phương thức index của controller ta sẽ nhận nó bằng cách truyền những tham số có vị trí tương ứng với từng thamso trên url.

Ví dụ 1:

Như ở ví dụ trên các bạn thấy mình truyền vào tham số có tên là $thamso và mang giá trị mặc định là rỗng. Điều này có ý nghĩa gì ? Khi các bạn chạy đường dẫn trên nhiều khi không cần truyền vào tham số nào cả thì chúng ta mặc định tham số có trí rỗng hoặc bạn có thể gán nó bằng 1 giá trị mặc định nào đó

Ví dụ 2:

Trong ví dụ  2 này mình truyền 2 tham số $id, $title vào phương thức show và gán giá trị mặc định cho tham số $id = 1 , tham số $title phải bắt buộc có giá trị. Như vậy bạn đã hiểu cách truyền 1 tham số hoặc nhiều hơn 1 tham số vào phương thức của Controller rồi phải không ?

3. Xác Định Controller Mặc Định

Một vấn đề được đặt ra ở đây. Tôi muốn mặc định chạy Controller nào đó khi người dùng truy cập vào tên domain của tôi thì phải làm sao ? Điều này hoàn toàn đơn giản các bạn ah

– Bạn mở thư mục application/config/routes.php các bạn sẽ thấy mặc định file routes.php sẽ có nội dung như sau:

Tại dòng số 3 : với nội dung $route[‘default_controller’] = ‘welcome’; ở đây sẽ khai báo như sau: controller mặc định sẽ là welcome bạn chỉ cần thay thế tên Controller muốn chạy mặc định là ok

Trong bài này mình sẽ không đi quá sâu vào routes trong codeigniter. Mình muốn các bạn đi từ từ và chạy rãi qua các bài viết sau để nắm rõ hơn Codeigniter

5. Xóa Đường Dẫn Index.php trong codeigniter

Trong các ví dụ trên URL để gọi Controller trong codeigniter luôn có file index.php nhìn rất là mất thẫm mỹ, để bỏ file index.php trên đường dẫn url trong codeigniter bạn làm như sau:
Tạo file .htaccess cùng cấp với file index.php, tức là ở ngoài cùng, sau đó copy nội dung này vào.

Sau đó bạn ra trình duyệt gõ URL “example.com//hello” thì CI tự động hiểu và gọi đến Controller Hello và phương thức index

Lời Kết:

Trong bài viết này mình chỉ giới thiệu cơ bản về Controller CodeIngiter . bài sau mình sẽ giới thiệu về View trong Codeigniter

[CodeIgniter 3.x] Tìm hiểu Controller Codeigniter
3.75 (75%) 4 votes
Từ khóa :