
Zend Framework: Tìm hiểu cơ bản về zend view

Ở bài trước, chúng ta đã cùng tìm hiểu về quy trình hoạt động của zend
framework. Đồng thời cũng đã cấu hình ứng dụng nâng cao theo cơ chế
multi module trong zend framework (đa chức năng). Tiếp tục ở bài này, tôi
sẽ hướng dẫn các bạn tìm hiểu về phương pháp sử dụng zend view để thực
hiện hoàn chỉnh thao tác gởi dữ liệu đúng với chuẩn mực M-V-C trong Zend
Framework.
A- Tìm hiểu quy tắc hoạt động của Zend View
Trong controller của zend framework khi chúng ta khởi tạo một action
(hành động). Thì tương đương tại thư mục
views/scripts/tên_controller/hành_động.phtml.
Ví dụ:
Nếu là NewsController và addAction() thì chúng ta sẽ tạo view theo cấu trúc:
Views/scripts/news/add.phtml

Như vậy, Zend Framework sẽ tự động gọi views của action add khi người
dùng tham chiếu tới action add qua đường dẫn. Vậy những gì mà chúng ta
trình bày ở view add.phtml sẽ hiển thị cho người dùng thấy khi họ tham chiếu
tới action add.
Vậy để truyền tham số mà chúng ta thao tác ở controller cho view như thế
nào ?.
Zend Framework cho phép người sử dụng truyền tham số thông qua phương
thức:
$this->view->tên_biến;
Và tại các file view có đuôi .phtml chúng ta chỉ cần sử dụng cú pháp: $this-
>tên_biến để lấy giá trị mà chúng ta đang truyền từ controller.
Ví dụ ta tạo controller tên: IndexController.php với nội dung:

1
<?php
2
class IndexController extends
Zend_Controller_Action {
3
public function indexAction(){
4
$this->view->string= "hello Zend Framework – QHOnline.Info";
5
}
6
7
}
Tại thư mục views/scripts/index ta tạo file tên index.phtml với nội dung:
1
<?php
2
echo "<h1>".$this->string."</h1>";
3
?>
Và kết quả sẽ ra là: Hello Zend Framework – QHOnline.Info
Như bạn thấy ta có thể truyền tham số và nhận tham số dễ dàng tại view với
quy tắc ở trên phải không nào.
Trường hợp truyền một mảng thì có cách truyền như sau:
01
<?php

02
class IndexController extends
Zend_Controller_Action{
03
public function
indexAction() {
04
$data= array(
05
'title' => 'Zend Framework',
06
'author'=> 'Kenny',
07
'date' => '20-11-2009',
08
'website'=> 'www.QHOnline.Info'
09
);
10
$this->view->info =$data;
11
}
12
}
Tại file view ta viết lại như sau:
1
<?php
2
foreach($this->info as $k => $v)
3
{
4
echo "<b>$k</b>: $v<br />";
5
}