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 vquy 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 hiu 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 ca zend framework khi chúng ta khởi tạo một action
(hành động). Thì tương đương tại thư mc
views/scripts/tên_controller/hành_động.phtml.
Ví dụ:
Nếu là NewsController và addAction() thì chúng ta stạ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 shiể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 vi 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à nhn tham sdễ dàng ti view với
quy tắc ở trên phi 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
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
}