Sự khác biệt giữa đính kèm và đồng bộ hóa trong Laravel là gì?
Trong cuốn sách nguồn này, chúng ta sẽ nghiên cứu khái niệm hàm sync() của Laravel. Trong khi làm việc với Laravel, chúng ta cần giới thiệu một bảng trung gian được gọi là bảng id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]0 theo thuật ngữ của Laravel. Và để thực hiện các thao tác trên bảng này chúng ta cần sử dụng các phương thức, là một trong số đó. Hãy khám phá nó sâu hơn Show
01 Sử dụng đồng bộ hóa trong LaravelPhương thức chấp nhận một mảng làm đối số. Như tên gợi ý, phương thức này đồng bộ hóa các mục cơ sở dữ liệu có nghĩa là bất cứ điều gì bạn chuyển vào phương thức này, những bản ghi đó sẽ được lưu vào cơ sở dữ liệu và phần còn lại sẽ bị xóa khỏi bảng trung gian (trục) 02 Ví dụ về đồng bộ hóa trong LaravelGiả sử trong dự án của chúng tôi, chúng tôi cần xác định vai trò của mọi người dùng. Vì vậy, người dùng có thể có nhiều vai trò và vai trò nghịch đảo có thể có nhiều người dùng. Vì vậy, nó sẽ là một mối quan hệ Many To Many Để làm được điều này chúng ta cần tạo 3 bảng id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]1, id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]2 và bảng trung gian id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]3. Bảng id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]3 sẽ có cột id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]5 và id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]6 kết nối cả bảng người dùng và vai trò và bảng trung gian này được gọi là bảng tổng hợp Đây là cấu trúc bảng users id - integer name - string roles id - integer name - string role_user user_id - integer role_id - integer Chúng tôi có các dữ liệu sau trong cơ sở dữ liệu của chúng tôi
id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]
id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:32
id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]0 Ví dụ: Như bạn có thể thấy trong bảng id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]3, người dùng có id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]8 có 3 vai trò, id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]9, id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:320 và id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:321. Bây giờ, chúng tôi muốn xóa vai trò id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:320 và id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:321 cho người dùng đó nhưng chúng tôi muốn giữ lại vai trò id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]9 Bảng id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]3 của chúng tôi trước khi vận hành id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:326 id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]1 id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]2 Sau khi thực hiện thao tác trên, bảng id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]3 của chúng ta sẽ như bên dưới id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]4 03 Truyền các tham số bổ sung đồng bộ hóaĐôi khi, chúng tôi có thể cần chuyển một số dữ liệu bổ sung trong khi đồng bộ hóa. Ví dụ: tôi muốn lưu trữ trạng thái hết hạn cho người dùng duy nhất có id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:328 thì bạn có thể làm như bên dưới id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]6 04 Phương thức syncWithPivotValues() trong LaravelNếu bạn muốn chèn thêm dữ liệu cho tất cả các ID mà không muốn sử dụng cách trên mất thời gian viết code và phức tạp cho nhiều ID thì có thể sử dụng cách id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:329 id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]8 Chúng tôi đã vượt qua id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]00 cho cả 3 kỷ lục, bạn có thể thấy mã đẹp hơn thay vì viết id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]01. Vì vậy, đây là một cách khác và tốt để truyền hàng loạt tham số bổ sung 05 Phương thức syncWithoutDetaching() trong LaravelPhương pháp id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]02 được sử dụng để đính kèm nhiều ID mà không xóa các bản ghi hiện có. Vậy là bạn đã biết cách thức hoạt động của id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:326, phương thức id name created_at updated_at -- ---------- ------------------- ------------------ 1 Admin 2021-05-27 13:00:32 2021-05-27 13:00:32 2 Subscriber 2021-05-27 13:00:32 2021-05-27 13:00:32 3 Editor 2021-05-27 13:00:32 2021-05-27 13:00:32 4 Viewer 2021-05-27 13:00:32 2021-05-27 13:00:326 sẽ loại bỏ các ID khác khỏi pivot table. Phương pháp này chỉ đính kèm các ID mà không loại bỏ các ID khác id name email -- ------- ------- 1 John Doe 1 [email protected] 2 John Doe 2 [email protected] 3 John Doe 3 [email protected] 4 John Doe 4 [email protected]4 Đó là nó từ cuối của chúng tôi. Chúng tôi hy vọng bài viết này đã giúp bạn hiểu phương pháp đồng bộ Laravel với một ví dụ Ngoài ra, hãy đọc hướng dẫn của chúng tôi
Vui lòng cho chúng tôi biết trong phần nhận xét nếu mọi thứ hoạt động như mong đợi, các vấn đề của bạn hoặc bất kỳ câu hỏi nào. Nếu bạn nghĩ rằng bài viết này đã tiết kiệm thời gian và tiền bạc của bạn, vui lòng bình luận, chia sẻ, thích và đăng ký. Cảm ơn bạn đã đọc bài đăng này 🙂 Hãy mỉm cười. mã hóa hạnh phúc sync() trong laravel là gì?sync() Nó tương tự như phương thức attachment() và nó cũng dùng để đính kèm các mô hình có liên quan . phương thức sync() chấp nhận một mảng ID để đặt trên bảng tổng hợp. Nếu các mô hình không tồn tại trong mảng, phương thức đồng bộ hóa sẽ xóa các mô hình khỏi bảng và chèn các mục mới vào bảng tổng hợp.
Tải háo hức trong laravel là gì?Háo hức tải trong Laravel
. Ngược lại, Lazy Loading chỉ truy xuất những thứ liên quan khi chúng thực sự cần thiết và chỉ cung cấp cho bạn một mục tại một thời điểm. Để tôi cho bạn xem một ví dụ thực tế. Hãy xem xét một cơ sở dữ liệu với hai bảng. bài viết và bình luận. you get all of the required data at the same time. In contrast, Lazy Loading only retrieves related things when they are actually needed and only gives you one item at a time. Let me show you a real life example. Consider a database with two tables: posts and comments.
Mô hình trục trong laravel là gì?Định nghĩa của Laravel Pivot Table. Bảng tổng hợp được định nghĩa là tập hợp các giá trị được sắp xếp ở dạng bảng trong đó mọi giá trị riêng biệt của bảng liên quan có thể được truy cập dưới dạng bảng tính, cơ sở dữ liệu, v.v.. It is available in one or multiple discrete functionalities.
Làm cách nào để tạo mối quan hệ nhiều-nhiều trong laravel?Làm cách nào để triển khai nhiều mối quan hệ trong Laravel? . Tạo một dự án Laravel. Bước đầu tiên sẽ là tạo một dự án Laravel. . Tạo một mô hình và di chuyển. . Tạo một bảng tổng hợp. . Xác định nhiều mối quan hệ. . Sử dụng Mối quan hệ Nhiều đến Nhiều trong Bộ điều khiển của chúng tôi. . Truy xuất hồ sơ |