
3535
Từ Laravel 9.37, một phương thức mới rawValue()
đã được thêm vào trong Eloquent Attributes để lấy giá trị gốc của thuộc tính mà không qua Accessor.
🚀 Tại sao cần rawValue()
?
Thông thường, nếu một thuộc tính có Accessor, khi truy cập $model->attribute
, giá trị trả về sẽ là kết quả của Accessor. Nhưng đôi khi, bạn cần lấy giá trị gốc từ database, bỏ qua Accessor.
📌 rawValue()
giúp lấy giá trị gốc của thuộc tính mà không bị ảnh hưởng bởi Accessor.
📌 Ví dụ 1: Khi Accessor làm thay đổi giá trị
🔹 Không dùng rawValue()
class User extends Model
{
protected function name(): Attribute
{
return Attribute::make(
get: fn ($value) => strtoupper($value) // Luôn trả về chữ in hoa
);
}
}
$user = User::first();
echo $user->name; // "JOHN DOE"
👉 Truy cập $user->name
sẽ luôn trả về chữ in hoa vì Accessor đã sửa đổi nó.
🔹 Dùng rawValue()
để lấy giá trị gốc
echo $user->rawValue('name'); // "John Doe"
👉 Lấy dữ liệu gốc từ database mà không bị Accessor can thiệp.
📌 Ví dụ 2: Khi dùng rawValue()
với dữ liệu JSON
Nếu bạn có một cột kiểu JSON trong database, Accessor có thể xử lý dữ liệu này khi lấy ra. Nhưng nếu bạn chỉ muốn lấy dữ liệu thô, dùng rawValue()
.
class Product extends Model
{
protected function details(): Attribute
{
return Attribute::make(
get: fn ($value) => json_decode($value, true) // Convert JSON thành mảng
);
}
}
$product = Product::first();
print_r($product->details);
// Kết quả: ['color' => 'red', 'size' => 'M']
print_r($product->rawValue('details'));
// Kết quả: '{"color": "red", "size": "M"}' (chuỗi JSON gốc)
📌 Khi nào nên dùng rawValue()
?
Trường hợp | Có cần rawValue() không? |
---|---|
Có Accessor làm thay đổi dữ liệu | ✅ Nên dùng |
Muốn lấy giá trị gốc từ database | ✅ Nên dùng |
Dữ liệu không có Accessor | ❌ Không cần |
Chỉ muốn hiển thị giá trị thông thường | ❌ Không cần |
🎯 Kết luận
rawValue()
giúp lấy dữ liệu gốc từ database mà không bị Accessor thay đổi.- Hữu ích khi làm việc với JSON hoặc các Accessor tùy chỉnh.
- Từ Laravel 9.37+, bạn có thể dùng
rawValue()
trực tiếp trên model. 🚀
Danh mục
Bài viết liên quan

Hiển thị giá trị trong Blade
01.08.2024
Author: | ADMIN |
---|
Hướng dẫn hiển thị biến trong Laravel Blade: escape HTML tự động, hiển thị dữ liệu thô, giá trị mặc định và cách truy xuất mảng, đối tượng. Giúp bạn tối ưu hiển thị dữ liệu một cách an toàn!

Cấu Trúc Điều Kiện và Vòng Lặp Trong Blade
01.08.2024
Author: | ADMIN |
---|
Khám phá các cấu trúc điều kiện và vòng lặp trong Laravel Blade. Tận dụng @if, @foreach, @forelse để hiển thị dữ liệu linh hoạt, giúp mã nguồn dễ đọc, sạch sẽ và tối ưu hơn!

Layout: @include, @extends, @section, @yield
01.08.2024
Author: | ADMIN |
---|
Hướng dẫn chi tiết về @include, @extends, @section và @yield trong Laravel Blade. Tối ưu hóa tái sử dụng giao diện, tổ chức mã rõ ràng, giúp phát triển và bảo trì ứng dụng dễ dàng hơn!

Blade Components
01.08.2024
Author: | ADMIN |
---|
Laravel Blade Components giúp bạn tạo giao diện tái sử dụng, truyền dữ liệu linh hoạt và sử dụng slots thông minh. Hướng dẫn chi tiết giúp mã nguồn sạch hơn, dễ bảo trì và phát triển nhanh chóng!
Bài viết khác

Blade Basics
01.08.2024
Author: | ADMIN |
---|
Khám phá Blade trong Laravel: từ if-else, loops, kế thừa layout đến include sub-views. Giúp code gọn gàng, dễ quản lý và bảo trì hơn!

9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel
01.08.2024
Author: | ADMIN |
---|
Khám phá 9 mẹo Blade giúp bạn viết code Laravel sạch, tối ưu và chuyên nghiệp hơn. Từ @forelse, @auth, @guest, đến format ngày, tối ưu SEO – tất cả trong một bài viết súc tích, dễ áp dụng!

Hiển thị giá trị trong Blade
01.08.2024
Author: | ADMIN |
---|
Hướng dẫn hiển thị biến trong Laravel Blade: escape HTML tự động, hiển thị dữ liệu thô, giá trị mặc định và cách truy xuất mảng, đối tượng. Giúp bạn tối ưu hiển thị dữ liệu một cách an toàn!