BÀI 2 : Controller và URLs trong CodeIgniter Framework

BÀI 2 : Controller và URLs trong CodeIgniter Framework

Tìm hiểu về CodeIgniter Framework URLs

– Mặc định các truy vấn đều gọi qua trang index.php

– Các phân đoạn trên 1 url có dạng:

domain.com/class/function/ID

 

Trong đó thì:

Phân đoạn đầu đại diện cho class (hay controller) được gọi lên

Phân đoạn 2 đại diện cho phương thức trong class(hay action trong controller)

Phân đoạn 3 trở đi đại diện cho các tham số của phương thức hoặc các biến gửi lên url

– Lấy các giá trị phân đoạn trên link url:
+ Để lấy giá trị các phân đoạn trên link url mọi người  có thể sử dụng cú pháp:

$this->uri->segment(‘n’);

Trong đó n chính là vị trí các phân đoạn trên link url
Ví dụ :

domain.com/product/view/1

Với link trên ta sẽ lấy các giá trị của phân đoạn như sau:

echo $this->uri->segment(‘1’); //trả về product

echo $this->uri->segment(‘2’); //trả về view

echo $this->uri->segment(‘3’); //trả về 1

Như mọi người thấy thì phân đoạn thứ nhất trả về product,phân đoạn 2 trả về view và phân đoạn 3 trả về 1.Dựa vào các phân đoạn này mọi người  hoàn toàn có thể gửi cũng như nhận dữ liệu 1 cách dễ dàng.
Chú ý:Trong trường hợp mà link url đã được rewrite thì mọi người  nên sử dụng

$this->uri->rsegment(‘n’);

để có thể lấy chính xác các phân đoạn theo ý muốn.

Bỏ index.php trên link url

– Mặc định file index.php sẽ được hiển thị trên link url ,ví dụ:

domain.com/index.php/user/login

Để có thể bỏ index.php trên link url ta tạo file .htaccess ngang hàng với file index.php với nội dung:

RewriteEngine on

RewriteCond $1 !^(index\.php|images|robots\.txt)

RewriteRule ^(.*)$ /index.php/$1 [L]

Lúc này đường link của chúng ta có thể viết lại dưới dạng:

domain.com/user/login

Với đường link dạng này thì mọi người  thấy phần đoạn thứ nhất trên link url chính là controller,phần đoạn 2 là tên phương thức(action),phân đoạn 3 (nếu có) sẽ là tham số trong phương thức

Chú ý : CI còn hỗ trợ 1 thư mục lưu file controller

domain.com/index.php/folder/class/function / ID

CI chỉ hỗ trợ 1 cấp thư mục nghĩa là trong folder không được chứa thêm folder nào nữa.

Tìm hiểu về CI Controller

– Đây chính là 1 phần trong mô hình MVC

– Quy tắc đặt tên controller và file controller:
+ Tên controller phải viết hoa ký tự đầu tiên
+ Tên file controller giống tên class và viết thường
Ví dụ:

 

 

 

 

Class Constructors: chúng ta có 1 chú ý đó là nếu trong controller mọi người xây dựng hàm khời tạo (__construct()) thì cần kế thừa lại hàm khởi tạo của CI_Controller
Ví dụ:

 

 

– Như các ví dụ  đã thực hiện trong bài 1  viết ứng dụng đầu tiên trong CodeIgniter thì mọi người  thấy khi download thư viện CodeIgniter về chạy thì mặc định sẽ chạy controller Welcome,vậy giờ chúng ta muốn thay đổi controller chạy mặc đinh sẽ làm như sau:
+ Truy cập vào application/config/routes.php
+ Thay đổi biến:

$route[‘default_controller’] = ‘ten_controller’;

Ví dụ: mặc định chạy controller index:

$route[‘default_controller’] = ‘test’;

– Khi truy cập link :

domain.com/user/login

lúc này chúng ta đang gọi tới controller (class) tên là user và phương thức là login,mặc định nếu không có phương thức được gọi ra thì nó sẽ chạy phương thức index() trong controller
– Ví dụ:
Tạo 1 controller có tên hello.php với nội dung

 

 

Dòng if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’); là dòng Security bảo vệ file của chúng ta, nó không cho truy cập thẳng vào file mà phải thông qua file index.php ở mức ngoài cùng.

Tên controller là Hello,và nó phải bắt đầu bằng chữ hoa

Phương thức (action) index() sẽ được chạy mặc định

BÀI 2 : Controller và URLs trong CodeIgniter Framework
5 (100%) 2 votes
Hai thẻ thay đổi nội dung bên dưới.
Tôi hoạt động trong lĩnh vực CNTT, bao gồm Web Design, Web Development , Mobile Development (Hybird apps & Android apps) . Cùng chia sẻ kiến thức lập trình là niềm vui của tôi . Nhận xây dựng website cho khách hàng Việt Nam và quốc tế . Vui lòng liên hệ 01632 434 165 để nhận tư vấn .Trân trọng !

Ý kiến của bạn

Hỗ trợ trực tuyến