Thứ Tư, 4 tháng 4, 2012

Bắt đầu làm việc với Controller, View trên CodeIgniter Framework

Codeigniter Framework được viết trên ngôn ngữ PHP và lập trình hướng đối tượng (OOP) làm việc trên mô hình MVC (Model - View -Controller) vì vậy trước khi bắt tay vào nghiên cứu Codeigniter ta phải thông thạo OOP và biết cách làm việc của MVC

Mô hình MVC





Trước khi bắt đầu với Controller của Codeigniter chúng ta thêm file .htaccess có nội dung như trong bài trước:



Thư mục gốc chứa site ta có các file và cấu trúc như sau hình bên:




Tại đây có thể thấy bao gồm: thư mục application, system file index.php, .htaccess. chúng ta chỉ làm việc trên thu mục application.

Thư mục application của codeigniter

Các controller toàn bộ được chứa trong thư mục controllers, views chứa các file giao diện người dùng, models chứa các model làm việc với CSDL.


Controller

URL: example.com/blog/
Tạo 1 file blog.php trong thư mục controllers

<?php
class Blog extends CI_Controller {  //controller có tên là Blog thừa kế controller của CI là CI_Controller

    public function index()  // funtion chính của controller có tên là index
    {
        echo '<h1>Hello World!</h1>';
    }
}
?>

Xuất kết quả là

Hello World!

Thêm một funtion có tên là comment

<?php
class Blog extends CI_Controller {

    public function index()
    {
        echo '<h1>Hello World!</h1>';
    }

    public function comment()
    {
        echo '<h1>Comment</h1>';
    }
}
?>

URL: example.com/blog/comment
 Xuất kết quả:

Comment

<?php
class Blog extends CI_Controller {

    public function index()
    {
        echo '<h1>Hello World!</h1>';
    }

    public function comment($id) //nhận id từ URL
    {
        echo $id;
    }


   
}
?>

URL: example.com/blog/comment/12
 Xuất kết quả  là: 12
Hàm show_404(); trả về trang Lỗi 404 của CodeIgniter

với một trang web ta có thể tạo ra nhiều các controller và chúng ta phải quy định controller nào chạy trước bằng cách set cho controller chạy mặc định tại: application/config/routes.php

Tìm dòng $route['default_controller'] và thay đổi controller mà ta cần chạy.


View

Tất cả các file chứa giao diện người dùng được chứa trong thư mục views

tạo 1 file blogview.php trong views có nội dung như sau


<html>
<head>
<title>My Blog</title>
</head>
<body>
    <h1>Welcome to my Blog!</h1>
</body>
</html>

trong controller có tên là blog

<?php
class Blog extends CI_Controller {

    function index()
    {
        $this->load->view('blogview');
    }
}
?>

$this->load->view('blogview') hàm load giao diện trong views ở đây chính là blogview mà ta vừa tạo

chạy thử: URL: example.com/blog/
Kết quả là:

Welcome to my Blog!

ngoài ra ta có thể vừa load view và có thể truyền dữ liệu để sử dụng trên view đó.

$this->load->view('blogview', $data); $data chính là dữ liệu cần sử dụng.



Không có nhận xét nào:

Đăng nhận xét