Thứ Tư, 17 tháng 6, 2015

Làm việc với View trong CodeIgniter Framework

Trong bài trước chúng ta đã có những nội dung khái quát nhất về CodeIgniter Framework .  Trong bài này chúng ta sẽ đi tìm hiểu cách làm việc với View trong CodeIgniter Framework.


Vậy view là gì và view để làm gì?

View có thể hiểu đơn giản là các giao diện (phần hiển thị mà người dùng thấy được), tạo ra tương tác giữa người dùng và hệ thống.

Cú pháp sử dụng view
$this->load->view('fileView');
Trong đó:
fileView : là tên file chứa nội dung cần gọi.

Ví dụ 1: Gọi view có tên là myView.php vào trong file inchuoi.php
<?php
 class Inchuoi extends CI_Controller{
   function index(){
     echo "Thế Giới WEB";
     $this->load->view('myView.php');
   }
 }
?>
Với nội dung file myView
<?php
 echo "Phần View";
?>
 Kết quả
Thế Giới WEB
Phần View
Như vậy ta thấy nội dung của file myView đã được load vào trong file inchuoi.php

Truyền tham số sang View

Để truyền tham số sang View ta cần lưu trữ dữ liệu truyền đó dưới dạng mảng. Và sử dụng cú pháp
$this->load->view('fileView', $mang);
Trong đó: $mang là mảng lưu trữ dữ liệu cần truyền sang View

Lưu ý: CodeIgniter Framework sẽ tự nhận key của biến mảng truyền sang view thành một biến bình thường.

Ví dụ 2: Truyền tham số có giá trị thegioiweb.net.vn sang View (myView.php) và in ra màn hình.
<?php
 class Inchuoi extends CI_Controller{
   function index(){
     echo "Thế Giới WEB";
     $data = array(
       "web"=>"thegioiweb.net.vn"
     );
     $this->load->view('myView.php', $data);
   }
 }
?>
Trong file myView.php ta xử lý như sau :
<?php
 echo $web;
?>
Kết quả
Thế Giới WEB thegioiweb.net.vn
Định dạng lại đường dẫn css, javascrip và hình ảnh trong View

Thông thường khi lập trình web, chúng ta hay sử dụng đường dẫn tương đối cho các liên kết css, js và hình ảnh. Do vậy khi sử dụng trong controller sẽ bị hiểu sai lệch đường dẫn

Giả sử đường dẫn link css ban đầu
<link rel="stylesheet" type="text/css" href="css/style.css" />
Khi đó sẽ được hiểu khi ta chạy trong controller inchuoi/index như sau :
http://localhost/democi/index.php/inchuoi/css/style.css
Để giải quyết vấn đề trên ta sử dụng thư viện helper trong CodeIgniter

Bước 1:

Trong file config.php trong thư mục application/config ta sửa dòng
$config['base_url'] = '';
thành
$config['base_url'] = 'http://localhost/democi';
Bước 2: Load thư viện helper vào trong file controller sử dụng cú pháp
$this->load->helper('url');
Bước 3: Định dạng lại đường dẫn file css như sau
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>/css/style.css" />

SHARE THIS

0 nhận xét:

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.