Ứng dụng Gii trong Yii2 Framework version 2

Bài 2: Ứng dụng Gii trong Yii2 Framework version 2
  1.  Gii là gì?
      Yii cũng giống như 1 số các framework khác cũng có tools hỗ trợ cho việc tạo code/files/thư mục. Việc này giúp bạn tiết kiệm thời gian rất nhiều. Gii là để sinh code cơ bản cho CURD. Trước kia, Yii cũng cấp tính năng này bằng Yiic, nhưng từ phiên bản Yii 1.1.2, đã có thêm Gii, Cho phép làm việc  qua giao diện Web. Bài này Tôi sẽ hướng dẫn các bạn cách sử dụng Gii. Và nếu các bạn muốn code theo ý của các bạn, thì các bạn cần sửa thêm phần code được sinh ra.

  • Một số lưu ý cần :
           - Config database (config trong file: common/config/database)
           - 
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.
If you liked this article

Let's subscribe the updates of Scuti!
Share on Google Plus

About Hieutq

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 Comments:

Post a Comment