14/12/16

View trong CodeIgniter

Nếu các bạn đã tìm hiểu qua về mô hinh MVC thì sẽ hiểu được View là gì rồi phải không nào,View có thể được hiểu là những phần hiển thị ra nội dung mà người dùng thấy được, tương tác được giữa hệ thống và người dùng ví dụ như: hình ảnh, kiểu chữ, giao diện,…Tóm lại là những gì mà chúng ta làm cho người sử dụng tương tác được. Việc tách biệt view và controllermodel sẽ giúp người lập trình dễ dàng phát triển và nâng cấp mã nguồn trong tương lai dễ dàng hơn.

Cách load View trong CodeIgniter

– Để sử dụng được view trong codeigniter. Trong controller ta dùng cú pháp:
1
$this->load->view("Đường dẫn tới view");
Đường dẫn tới view ở đây được tính từ bên trong application/views
– Ví dụ:
Tạo file 1 controller index.php với nội dung:
1
2
3
4
5
6
7
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller {
    public function index()
    {
        $this->load->view("index/index");
    }
}
Với việc load view như trên thì chúng ta cần tạo ra file theo đường dần: application/views/index/index.php
Trong file view application/views/index/index.php ta ghi nội dung như sau:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>
<h1>Buoi hoc tong quan ve CodeIgniter Framework tai hocphp.info</h1>
    </body>
</html>
Thư mục chạy code của mình là CodeIgniter_2.2.0 Sau đó các bạn thử chạy với link http://localhost/CodeIgniter_2.2.0/index.php/index ,nếu bạn nào sử dụng file .htaccess để loại bỏ index.php trên url thì có thể chạy link http://localhost/CodeIgniter_2.2.0/index và sẽ được kết quả như sau:
Chạy ứng dụng CodeIgniter đầu tiên

Load view trong view

– Các bạn hoàn toàn có thể sử dụng load 1 view khác trong 1 view nào đó,đây chính là cách mà hiện tại người ta đang sử dụng để lắp ghép các bố cục giao diện website lại với nhau (ví dụ header,left,right,content,footer….)
Ví dụ:
+ Tạo 1 file view có tên header.php với nội dung:
1
2
3
4
5
<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>
+ Tạo 1 file view có tên footer.php với nội dung:
1
2
3
<html>
    </body>
</html>
+ Tạo 1 file view có tên index.php với nội dung:
1
2
3
4
5
6
7
8
9
10
11
$this->load->view("header");
<div class='content'>
<h1>Buoi hoc ve View trong CodeIgniter Framework tai hocphp.info</h1>
     </content>
$this->load->view("footer");
Cách này cũng gần giống như với việc các bạn sử dụng hàm include() trong php để chèn các trang khác vào.

Gửi tham số sang view

– Cú pháp:
1
$this->load->view("Đường dẫn tới view"$data);
Trong đó thì $data chính là dữ liệu gửi sang bên view,các bạn cần lưu ý $data phải là 1 mảng dữ liệu,khi sang bên view thì khóa (key) của mảng $data này chính là biến sẽ được sử dụng bên view
– Ví dụ:
Tạo file 1 controller index.php với nội dung:
1
2
3
4
5
6
7
8
9
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller {
    public function index()
    {
        $data array();
        $data['title'] = 'Buoi hoc tong quan ve CodeIgniter Framework tai hocphp.info';
        $this->load->view("index/index",  $data);
    }
}
Trong file application/views/index/index.php ta ghi nội dung như sau:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>
<h1><?php echo $title?></h1>
    </body>
</html>
Kết quả như sau:
Chạy ứng dụng CodeIgniter đầu tiên
Như vậy là các bạn thấy bên controller đã gửi sang biến $data[‘title’] và bên view sẽ sử dụng khóa(key) của mảng này chính là biến $title.
Vì khi load view, Codeigniter tự động sẽ lọc và biến khóa title từ controller trở thành 1 biến bình thường. Do đó, tại đó để sử dụng ta chỉ cần viết: echo $title

Gửi nhiều tham số Controller sang View

– Ví dụ:
Tạo controller index.php với nội dung:
1
2
3
4
5
6
7
8
9
10
11
12
class Index extends CI_Controller {
    public function index()
    {
    $data[‘title’] = “Php framework”;
    $data[‘product’] = array(
                 “name” => “nokia 520”,
                 “price”  => “3700000”,
                 “catalog”  => “Nokia”,
    );
    $this->load->view(“index/index“,$data);
    }
}
Trong file application/views/index/index.php ta ghi nội dung như sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>
<h1><?php echo $title?></h1>
<?php
Echo “Tên sản phẩm là:”.$product[“name”];
Echo “Giá sản phẩm là:”.$product[“price”];
Echo “Danh mục là:”.$product[“catalog”];
?>
    </body>
</html>
Như các bạn thấy bên controller gửi sang 2 khóa của mảng đó chính là $title và $product,trong đó biến $product lại là mảng dữ liệu,như vậy tại trang view chúng ta sẽ sử dụng biến $product như là 1 mảng kết hợp bình thường.
Bạn đang đọc bài viết View trong CodeIgniter tại Website: Học Lập Trình

0 nhận xét: