HỌC PHALCON CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 04: Thao tác với Views trong Phalcon

Tiếp theo bài trước, trong bài này chúng ta sẽ tìm hiểu cách khai báo views và gọi views ở Controller. Các bạn lưu ý rằng nội dung của serie này sẽ đi từng bài, bài sau sẽ có sử dụng tài nguyên của bài trước nên nếu bạn không rõ thì hãy quay lại các bài trước nhé. 

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài này sẽ sử dụng cấu trúc folder như sau:

project_name/
    /app/
       /cache/
       /config/
       /controllers/
       /models/
       /views/
    /public/
       /bootstrap/
       /css/
       /js/
    /index.php

1. Khai báo views trong Phalcon

Với cấu trúc folder như trên chúng ta sẽ khai báo các views nằm trong folder  app/views. Nhưng có lưu ý với các bạn rằng để Phalcon nhận diện ra views thì bạn phải tuân theo cấu trúc  sub folder của nó nhé, quy định như sau:

  • Mỗi controller sẽ có một folder ở views tương ứng với tên của nó
  • Các action sẽ có một file views với tên trùng với tên action, trường hợp ta không khai báo file này thì cũng không ảnh hưởng gì.
  • Phần đuôi của file view phải là .phtml, ví dụ index.phtml

Như vậy ví dụ ta có controller là IndexController và action indexAction thì view sẽ có đường dẫn là project_name/app/views/index/index.phtml. Cấu trúc như sau:

Bài viết này được đăng tại [free tuts .net]

project_name/
    /app/
       /views/index/index.phtml

2. Load views trong Phalcon

Tạo controller

Bạn tạo một file controller mới tên là IndexController với nội dung như sau:

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        
    }
}

Tạo Views

Vì controller của chúng ta có tên là IndexController nên ta sẽ khai báo một folder index trong folder app/views, đồng thời bạn tạo mới một file index.phtml với nội dung như sau:

<h1>Hello World!</h1>
Lúc này cấu trúc folder chúng ta như sau:

project_name/
    /app/
       /controllers/
            IndexController.php
       /views/
            index/index.phtml
    /index.php

Chạy lên bạn sẽ thấy dòng chữ "Hello World!" xuất hiện trên màn hình.

3. Truyền dữ liệu từ controller sang view trong Phalcon

Để truyền dữ liệu từ controller sang view thì bạn dùng cú pháp như sau ở controller: $this->view->setVar('name', $data). Lúc này bên view bạn sẽ có một biến $name.

Bây giờ bạn chỉnh lại controller như sau:

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        $this->view->setVar("message", "Hello World!");
    }
}
Và chỉnh view lại như sau:

<?php echo $message; ?>
Refresh (F5) lại trình duyệt và xem kết quả bạn sẽ thấy cũng không có gì khác biệt.

4. Disable View trong Phalcon

Như bạn thấy mặc định Python sẽ gọi view cho chúng ta nếu ta làm theo cấu trúc của nó, như vậy có một số trường hợp ta không muốn gọi đến view đó thì như thế nào? Rất đơn giản, Phalcon cung cấp cho chúng ta một sự lựa chọn đó là sử dụng cú pháp $this->view->disable(); tại controller muôn áp dụng là xong.

Bây giờ bạn chỉnh lại controller một xíu như sau:

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        $this->view->setVar('message', 'Hello World!');
        $this->view->disable();
    }
}
Chạy lên bạn thấy màn hình không xuất hiện gì, lý do là ta đã disable view rồi nên nó sẽ không gọi đến view.

Lời kết

Phần view trong Phalcon cũng khá dài nên mình sẽ dừng tại đây, các bài nâng cao phía sau chúng ta sẽ tìm hiểu kỹ thuật master layouts trong Phalcon nhé. Bài tiếp theo chúng ta  sẽ tìm hiểu đến cách khai báo một Model và cách sử dụng nó ở mức căn bản nhất.

Cùng chuyên mục:

Bài 06: Tạo template dùng chung trong Phalcon

Bài 06: Tạo template dùng chung trong Phalcon

Trong Phalcon ngoài Main Template thì nó còn có một chức năng tạo một Template…

Bài 05: Mô hình layouts của views trong Phalcon

Bài 05: Mô hình layouts của views trong Phalcon

Nếu bạn đã từng nghiên cứu qua Codeigniter Framework thì bạn sẽ thấy điểm yếu…

Bài 03: Thao tác với Controller trong Phalcon

Bài 03: Thao tác với Controller trong Phalcon

Phalcon hoạt động theo mô hình MVC nên nó sẽ có một file index.php làm…

Bài 02: Xây dựng cấu trúc folder cho ứng dụng phalcon

Bài 02: Xây dựng cấu trúc folder cho ứng dụng phalcon

Nếu bạn đã từng tìm hiểu qua các Framework khác thì thông thường khi download…

Bài 01: Download và cài đặt Phalcon trên Window

Bài 01: Download và cài đặt Phalcon trên Window

Hiện nay có rất nhiều PHP Framwork nên việc lựa chọn cho mình một Framwork…

Top