Hiểu sự khác nhau giữa `fresh()` và `refresh()`

  • 2 Tháng Mười Một, 2022

Laravel cung cấp hai phương pháp giống nhau mà bạn có thể sử dụng để làm mới một model hiện có và tìm nạp dữ liệu mới nhất của nó. Đầu tiên, hãy truy xuất dữ liệu user từ cơ sở dữ liệu:

$user = User::create(['name' => 'John']): $user->name; // John
Code language: PHP (php)

Chúng ta xem xét phương thức fresh(). Phương thức này sẽ reload lại model và trả về nó dưới dạng một instance mới. Nó không làm thay đổi model gốc.

DB::table('users')->update(['name' => 'Trung']); $user->name; // John $user->fresh()->name; // Trung $user->name; // John
Code language: PHP (php)

Thêm một phương thức khác là refresh(). Không giống như fresh(), nó thay đổi model instance hiện tại. Laravel sẽ tải lại dữ liệu của model đã truy xuất trước đó

DB::table('users')->update(['name' => 'David']); $user->name; // John $user->refresh()->name; // David $user->name; // David
Code language: PHP (php)
0
Rất thích suy nghĩ của bạn, hãy bình luận.x