Hướng dẫn dùng set uid trong PHP
#Giới thiệuTrong bài trước chúng ta đã tạo và chỉnh sửa migration file nhằm tạo 3 table
Trước hết, hãy nhìn vào một địa chỉ của Github Gist : Tuy nhiên, chúng ta không hề có cấu trúc nào để lưu trữ hash trong schema (cấu trúc của database). Cách giải quyết thường gặp nhất đó là tạo thêm 1 cột mới tên là Một lợi ích khác của cách này đó là người khác không thể biết tổng số record có trong table của bạn. Một dạng địa chỉ thường thấy của các blog home-growth (tự phát triển) có dạng Nhiều bạn sẽ
nói đa số các blog đều không có phần Hay đơn giản là nhìn vào ứng dụng Gist của chúng ta. 1 Gist có thể có trạng thái public/private. Nhưng nếu chúng ta dùng auto-increment #UUIDDài dòng thế là đủ rồi. Bây giờ quay lại chủ đề chính. UUID là gì ? Là một chuẩn chung nhằm tạo ra các random-hash không trùng nhau (xác xuất gần bằng 0). Nếu các bạn quan tâm, các bạn có thể tìm hiểu về chuẩn UUID tại đây. Một chuỗi UUID cơ bản có dạng như sau: #MigrationsChúng ta đã biết được cấu trúc của UUID một ID, hãy chỉnh sửa lại migration để áp dụng UUID vào Gist. Lưu ý: Chúng ta còn đang trong giai đoạn ban đầu, việc sửa đổi trực tiếp các file migration là chấp nhận được. Nếu như các bạn đang làm project đã được deploy (và có dữ liệu thực). Hãy tạo thêm 1 file migration mới và áp dụng các sửa đổi trong file này Việc sửa đổi file migration rất đơn giản, những chỗ nào kiểu dữ liệu là
Xem 2 file đầy đủ tại gist#e24d7b64ba #ModelMặc định, Eloquent model sẽ dùng cột Trong file
Mình quên một chỗ là chúng ta sẽ dùng package Laravel-Uuid để tạo nhanh UUID. Cài đặt nhanh:
Chúng ta không cần thêm
Và trong
Ở đây có 2 chỗ chúng ta cần quan tâm, đó là
Tức là báo cho Eloquent biết sẽ không có giá trị Tiếp theo là
Đây được gọi là Model-events các bạn có thể xem docs của Laravel 5.0 để hiểu rõ hơn. Model event xứng đáng một bài viết riêng. Mình chỉ giải thích ngắn gọn là trước khi một model được tạo
(tức là 1 row trong table - xem lại bài trước về Active Record Pattern). Đoạn code chúng ta thêm vào sẽ tạo một Uuid và gắn vào primary key (lấy primary key bằng #RefactorNhư vậy là chúng ta đã hoàn thành việc sự dụng Uuid trong Gist Model. Nhưng theo như file migration ở trên, chúng ta muốn sử dụng cho cả User Model. Giải pháp? Copy-paste phần code chúng ta sử ở Gist Model qua User Model. 100% là sẽ hoạt động. Nhưng giải sử chúng ta muốn thêm chức năng comment?
Copy-paste tiếp à :D . Mình sẽ chỉ các bạn cách đơn giản hơn. Đầu tiên tạo file
Sau đó trong Gist Model thay vì ban đầu là
Chúng ta sửa lại :
Làm tương tự với User Model. Như vậy từ nay, khi muốn sử dụng Uuid cho bất cứ Model nào, chúng ta chỉ đơn giản làm như vậy. Lưu ý: #Kết luậnQua bài này, chúng ta đã biết được cách sử dụng Uuid với Eloquent Model. Chúng ta đã sửa và thêm vào không quá 20 dòng code. Tất cả đều nhờ vào sự "thần kì" của Laravel. |