Tạo Form trong Symfony

Trong Symfony, thay vì tạo form trong template file, ta có thể sử dụng Symfony Form - một tính năng lớn của Symfony, giúp tăng tốc quá trình xây dựng CRUD, cũng như cung cấp rất nhiều khả năng tuỳ chỉnh cho nhu cầu của bạn.

Tạo Symfony Form với quan hệ ManytoMany

Ở đây ta sẽ tạo ví dụ 1 Symfony Form với quan hệ ManytoMany trên User - Role. 1 user có thể có nhiều role, và nhiều role cũng có thể được giao cho 1 user.
P/S: Xem lại bài trước

Tạo Entity Role

run: symfony console make:entity Role
tạo property 'name'

Tạo Entity User

run: symfony console make:entity User
tạo property 'name' như sau:

Ngoài ra, tạo property 'role' cho quan hệ ManytoMany như sau:

Sau đó, tạo bảng tương ứng trong cơ sở dữ liệu, sử dụng Migrations:
run: symfony console doctrine:migrations:diff
run: symfony console doctrine:migrations:migrate

Sau đó, tạo CRUD cho role:
run: symfony console make:crud Role

Truy cập: https://127.0.0.1:8000/role/ và tự tạo các role, vd như: Admin, Member, User, ..., sẽ được như sau:

tạo CRUD cho user:
run: symfony console make:crud User

Trong file src/Form/UserType.php, sửa lại 'role' dạng EntityType như sau:

P/S: EntityType có nhiều tuỳ chọn khác nhau (radio, select, chekbox, ...). Ở đây ta sẽ chọn dạng checkbox.
Truy cập: https://127.0.0.1:8000/user/new ta sẽ được form dạng như sau:

Tham khảo: