Bài 3: Load View Trong Codeigniter
- Tạo Mới Một View Trong Codeigniter
- Load View Trong Controller
1. Tạo Mới Một View Trong Codeigniter
Trong Codeigniter tất cả các Views đều được đặt trong thư mục application/views. Các bạn vào folder đó tạo một file tên là login_view.php, trong view các bạn tạo một form login như sau:File application/views/login_view.php:
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form method="POST" action=""> Username : <input type="text" name="username" value=""/> <br/> Password : <input type="password" name="password" value=""/> <br/> <input type="submit" name="submit_login" value="Login"/> </form> </body> </html>
Vậy là bạn đã tạo được một view trong codeigniter rồi đó.
2. Load View Trong Controller
Có rất nhiều cách load view trong codeigniter, dưới đây là những cách load thông dụng
Load View:
Sau khi có view login_view.php ở trên, bạn vào tạo một controller mới với tên là Login có nội dung như sau:
File application/controllers/Login.php:
class Login extends CI_Controller { // Hàm load form login public function load_form() { // Load view $this->load->view('login_view'); } }
Cú pháp để load view là : $this->load->view(‘tên view’);
Bạn ra trình duyệt gõ URL “localhost/codeigniter/login/form_login” nếu xuất hiện một form login thì bạn đã load view trong controller thành công rồi đấy.
Load Nhiều View
Để load nhiều view bạn chỉ cần dùng cú pháp load view nhiều lần, ví dụ:
$this->load->view('view1'); $this->load->view('view2'); $this->load->view('view3'); $this->load->view('view4'); $this->load->view('view5');
Load View Ở Sub Folder
Thông thường ta sẽ lưu các view liên quan với nhau trong một folder riêng, ví dụ:
- application/views/product/lists.php
- application/views/product/add_form.php
- application/views/product/add_edit.php
Vậy để load view nằm ở sub folder dạng này ta dùng cú pháp sau:
$this->load->view('subfolder/view1');
Load View Ở Dạng Biến
Nếu bạn muốn load một view ở dạng biến thì bạn dùng cú pháp sau: $var = $this->load->view(‘view_name’, ”, true);
Ví dụ:
class Login extends CI_Controller { // Hàm load form login public function form() { // Load view lưu vào một biến $login_form = $this->load->view('login_view', '', true); // Xuất view ra màn hình echo $login_form; } }
Truyền Dữ Liệu Qua View
Để truyền dữ liệu qua view thì tất cả dữ liệu bạn phải đưa vào một mảng kết hợp $data, Controller sẽ tự động tạo các biến bên view tương ứng với các key và các value trong mảng $data đó. Mỗi dữ liệu có thể ở các kiểu như: float, double, int, string, object, array.
Ví dụ:
Trong controller Login: (File application/controllers/Login.php)
class Login extends CI_Controller { // Hàm load form login public function form() { // Data cần truyền qua view $data = array( 'title' => 'Đây là trang login', 'message' => 'Nhập Thông Tin Đăng Nhập' ); // Load view và truyền data qua view $this->load->view('login_form', $data); } }
Bạn xóa hết nội dung cũ và gõ vào đoạn code PHP sau:
// Tương ứng với $data['title'] bên controller echo $title; echo ' '; // Tương ứng với $data['message'] bên controller echo $message;
Lời Kết
Trong bài này chúng ta chỉ tìm hiểu một vài cú pháp xử lý view chứ chưa gọi là cao siêu gì, nhưng đó là nền tảng đấy nhé các bạn. Bài tiếp theo chúng ta sẽ tìm hiểu cách load model trong codeigniter.