Bài 2: Ứng dụng Gii trong Yii2 Framework version 2
- Gii là gì?
- Một số lưu ý cần :
- Các bảng cũng như mối quan hệ giữa chúng trong database phải được thiết kế chính xác. Nếu không Gii sẽ sinh code sai
- Sau đây là các bước để các bạn có thể bắt đầu với Gii.
1. Config trong database
2. Tạo 1 migration.
- Để tạo 1 migration các bạn truy cập vào thư mục dự án Yii Dữ SHIFT và click chuột phải rồi chọn
Open Command window here khi cửa sổ commad hiện lên các bạn chạy câu lệnh
yii migrate/create <name> Or
php yii migrate/create <name>
- Sau khi tạo xong migration các bạn tạo 1 bảng, tham khảo cách viết migration tại link này: http://www.yiiframework.com/doc-2.0/guide-db-migrations.html . và chạy câu lệnh Yii migrate or php yii migrate để chạy migration của bạn
Hoàn thành 2 bước trên. Giờ bạn truy cập Gii. http://localhost/advanced/backend/web/index?r=gii (addvanced là tên thư mục dự án. các bạn có thể xem lại bài 1 đã nói). Bạn sẽ thấy 1 loạt links những tính năng như hình sau:
Chúng ta sẽ bắt đầu với Models trước tiên: bạn click "start" của "Model Generator" trên trang hiện ra.
1. Nhập Table Name/tên bảng là Post
2. Nhập Model Name/tên lớp Model. Model name được copy từ động từ table name.
3. Với NameSpace ta sẽ sửa từ "App/models" thành "Common/Models" (mục đích là để sử dụng model cho cả backend và frontend, những thằng nào dùng cho cả backend và frontend ta sẽ để vào thư mục common )
4. Ngoài tích chọn mặc định là "Use Schema Name" các bạn tích chọn thêm "Generate labels from DB Commnets" để các labels sẽ lấy name giống như các trường trong bảng.
5. Click Prevew. Bạn sẽ thấy 1 bảng xuất hiện dưới form. liệt kê những file sẽ được tạo ra ( trường hợp này là 1 file model duy nhất )
6. Click Generate/Tạo files.
Bạn sẽ thấy thông báo rằng code đã được tạo (bạn có thể kiểm tra files để chắc chắn).
Bây giờ, là phần quan trọng, tạo 4 tính năng CRUD. Click "start" của “Crud Generator”. Trên trang hiện ra:
1. Nhập Model Class là Post (viết đầy đủ cả namespace)
2. Nhập Model class search ( bạn tự đặt tên cho class này. đây là 1 class mới để truy xuất dữ liệu khi search , muốn tạo chức năng search cho backend hay frontend thì chỉ cần đổi 2 từ đó cho nhau)
3. Nhập Controller . Viết theo dạng viết hoa chữ đầu của mỗi từ trừ từ đầu (camelcase) (viết đầy đủ cả namespace . Tạo controller cho backend hay frontend thì chỉ cần thay đổi 2 từ này cho nhau).
4. Nhập tên thư mục View. tên này sẽ phải viết theo tên của controller bạn tạo ra.( VD. PostNewController . view sẽ là. post-view. từ In hoa kế tiếp của controller sẽ được định nghĩa bởi "-" thêm "@" trước backend hoặc frontend. nhìn ảnh để hiểu rõ hơn).
5. Click Preview. Bạn sẽ thấy 1 bảng xuất hiện dưới form. liệt kê những file sẽ được tạo ra.
6. Click Generate.
==> chú ý.: Nếu bạn muốn bỏ bớt 1 số tính năng, như create hay delete, thì bạn bỏ chọn những checkbox tương ứng.
Tương tự Generate Model cũng có thông báo rằng code đã được tạo.
Generate CRUD, là tạo Controller và Views cho mỗi Model. Thư mục Views tương ứng với mỗi Model sẽ có 6 files:
- _form.php
- _search.php
- create.php
- index.php
- update.php
- view.php
File form được dùng lại cho cả create và update. File search cung cấp 1 form search. File index là bảng liệt kê danh sách các đối tượng dữ liệu của Model, kèm theo links cho 4 tính năng CRUD. File view là để view/xem 1 đối tượng cụ thể. 2 files create và update là để tạo và sửa dữ liệu - chúng sẽ bọc file form với những thông tin tương ứng về tiêu đề và những thứ tương tự.
CHÚ Ý: Sẽ có những lúc bạn chỉ có nhu cầu tạo Model chứ không có nhu cầu tạo CRUD. Không nhất thiết lúc nào cũng làm cả 2 bước
Đó là 2 bước sinh code Model và CRUD. Bạn có thể kiểm tra code được sinh ra bằng 2 cách: duyệt files và duyệt web. Vơi link "localhost/advanced/backend/web/index?r=post" "post" là tên controller. nếu muốn đường link đẹp hơn các bạn có thể config urlManager trong file: "backend/config/main.php" frontend tương tự. (mình sẽ chỉ trong bài tiếp theo).
Gii đã làm được khoảng 80% công việc. Nhưng để app của chúng ta có thể dùng được trong đời thực. Thì ta phải sửa lại code này. Những bài tới sẽ nói về việc này.
ReplyDeleteIt is really a great work and the way in which you are sharing the knowledge is excellent.Thanks for your informative article
https://www.zuaneducation.com/web-designing-training-courses
Magento course in chennai
Aivivu chuyên vé máy bay, tham khảo
ReplyDeletevé máy bay đi Mỹ giá rẻ 2021
vé máy bay đi hà nội tháng 10
đặt vé máy bay hà nội sài gòn vietjet
đà nẵng đi nha trang bao nhiêu km
gia ve may bay ve vn
taxi đi sân bay
combo đi quy nhơn