Lấy tất cả changes applied bởi model updates trong Laravel Chuyên mục PHP và Laravel 2023-09-10 871 Lượt xem 19 Lượt thích 0 Bình luận

Đây là một mẹo nhỏ mà tôi biết về Eloquent thông qua dòng tweet này của ninjaparade.
Vì vậy, đôi khi, sẽ rất hữu ích nếu bạn muốn áp dụng tất cả các thay đổi trong action cập nhật model. Có thể trong trường hợp bạn muốn cho người dùng thấy tất cả mọi thứ đã bị ảnh hưởng khi họ cập nhật nội dung nào đó.
Hóa ra, chúng ta có thể nhận được những thay đổi này bằng cách sử dụng phương thức getChanges() trên model instance. Lấy ví dụ sau đây.
$book = Book::find(1);
$book->update([
'title' => 'Maharani'
'author' => 'Ruskin Bond'
]);
Bây giờ, nếu muốn biết tất cả các trường nào đã bị ảnh hưởng bởi bản cập nhật, chúng ta có thể gọi phương thức getChanges() như vậy.
$book->getChanges();
/*
[
'title' => 'Maharani',
'author' => 'Ruskin Bond',
'updated_at' => '2021-07-20 00:08:25'
]
*/
Như bạn có thể biết, chúng tôi có thể lấy các trường được cập nhật bao gồm cả trường update_at.
Tôi phải nói là khá tiện dụng!

Bình luận (0)