Share Hướng dẫn sử dụng Zend Form trong Zend framework 3

filiallion

Administrator
Staff member
Administrator
Messages
499
Points
10
Language
Tiếng Việt
Form là một thành phần không thể thiếu trên bất kỳ website nào, đây là thành phần quan trọng giúp người quản trị cập nhật nội dung website cũng như giúp cho người dùng gửi thông điệp hay tương tác với website. Vì vậy, gần như tất cả các PHP framework đều cung cấp thành phần form quan trọng này và Zend framework cũng không ngoại lệ.

Trong Zend framework, thành phần form được cung cấp với tên gọi Zend Form, thành phần form này đã có từ những phiên bản đầu tiên của Zend framework và cho tới phiên bản Zend framework 3 thì thành phần Zend Form đã được hoàn thiện rất tốt. Nhìn chung, Zend Form trong phiên bản Zend framework 3 không khác so với phiên bản Zend framework 2 nên nếu các bạn đã sử dụng qua Zend Form trong Zend framework 2 thì các bạn có thể dễ dàng sử dụng Zend Form trong Zend framework 3.

Các bạn có thể sử dụng Zend Form một cách độc lập không phụ thuộc hoàn toàn vào Zend framework bằng cách cài đặt với dòng lệnh Composer sau:
Code:
composer require zendframework/zend-form
Bài viết này tôi sẽ hướng dẫn các bạn sử dụng Zend Form trên cơ sở Zend framework 3 và ở mức cơ bản cho các bạn mới làm quen với Zend framework. Trước tiên, các bạn tạo một form đơn giản như ví dụ sau:
PHP:
<?php
namespace Application\Form;

use Zend\Form\Element;
use Zend\Form\Form;

class MyForm extends Form
{
    public function __construct($name = 'my')
    {
        //Gọi hàm tạo cha
        parent::__construct($name);
        
        //Thêm một thành phần
        $this->add([
            'type' => Element\Text::class,
            'name' => 'title',
            'options' => [
                'label' => 'Title'
            ]
        ]);
    }
}
Với nội dung mã lệnh PHP như trên, các bạn đã tạo được một form với thành phần là hộp nhập văn bản. Bây giờ, các bạn gọi sử dụng form đó trong controller như ví dụ sau:
PHP:
<?php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Application\Form\MyForm;

class MyController extends AbstractActionController
{
    public function indexAction()
    {
        //Khởi tạo đối tượng my form
        $myForm = new MyForm();
        
        //Trả về view model
        return new ViewModel([
            'myForm' => $myForm
        ]);
    }
}
Tiếp theo ngoài giao diện (View), các bạn trình bày form như sau:
HTML:
<?php echo $this->form()->openTag($this->myForm); ?>
<p><?php echo $this->formLabel($this->myForm->get('title')); ?></p>
<p><?php echo $this->formElement($this->myForm->get('title')); ?></p>
<?php echo $this->form()->closeTag(); ?>
Trên đây chỉ là một ví dụ đơn giản để khởi tạo form, các bạn có thể tìm hiểu thêm về Zend Form tại địa chỉ https://docs.zendframework.com/zend-form.
 
Top