Laravel

Sử dụng Number::spell trong Laravel để chuyển số thành chữ viết

Admin
May 24, 2025
2 phút đọc
364

Trong nhiều ứng dụng, đặc biệt là các ứng dụng liên quan đến tài chính, kế toán, việc chuyển đổi một con số sang dạng chữ viết (như khi xuất hóa đơn, chứng từ thanh toán) là vô cùng cần thiết. Laravel cung cấp một công cụ tiện lợi giúp bạn thực hiện điều này dễ dàng thông qua lớp Number với hàm spell.

Giới thiệu về Number::spell

Phương thức spell thuộc facade Number trong Laravel hỗ trợ chuyển đổi số thành dạng chữ viết, hỗ trợ nhiều ngôn ngữ, trong đó có tiếng Anh và tiếng Việt. Đặc biệt, từ Laravel 10 trở lên, tính năng này càng trở nên dễ sử dụng và hiệu quả hơn.

Cách sử dụng Number::spell

Cú pháp cơ bản của phương thức này như sau:

php
<?php

use Illuminate\Support\Number;

$number = 12345;
$spelledNumber = Number::spell($number);

// Kết quả: "twelve thousand three hundred forty-five"

Bạn cũng có thể sử dụng thêm các tham số khác như locale, after, until:

php
<?php

$spelledNumber = Number::spell(117, 'vi', 5, 5000);
// Kết quả: "một trăm mười bảy" (số 117 nằm trong khoảng giới hạn 5 đến 5000 nên sẽ được viết bằng chữ)

$spelledNumber = Number::spell(6000, 'vi', 5, 5000);
// Kết quả: 6.000

Sử dụng Number::spell với ngôn ngữ tùy chọn

Mặc định, Laravel sẽ sử dụng ngôn ngữ thiết lập trong ứng dụng. Nếu bạn muốn tùy chỉnh ngôn ngữ khi chuyển đổi số, hãy làm như sau:

php
<?php

use Illuminate\Support\Number;

$number = 12345;
$spelledNumber = Number::spell($number, 'vi');

// Kết quả: "mười hai nghìn ba trăm bốn mươi lăm"

Một số ví dụ thường gặp

  • Chuyển đổi tiền tệ:
php
<?php

$amount = 8500000;
echo Number::spell($amount, 'vi');
// "tám triệu năm trăm nghìn"
  • Sử dụng trong blade template:
php
<p>Số tiền bằng chữ: {{ Number::spell($invoice->total_amount, 'vi') }}</p>

Một số lưu ý quan trọng

  • Hàm này hỗ trợ tốt nhất cho các số nguyên. Với các số thực (dạng decimal), bạn cần xử lý riêng phần số thập phân nếu cần thiết.
  • Đảm bảo phiên bản Laravel của bạn từ 10 trở lên để có hỗ trợ tốt nhất.
  • Kiểm tra cấu hình ngôn ngữ ứng dụng để kết quả chính xác nhất.

Tổng kết

Number::spell là một công cụ mạnh mẽ, tiện dụng mà Laravel cung cấp, giúp lập trình viên dễ dàng thực hiện việc chuyển đổi số thành chữ viết, đặc biệt hữu ích trong các hệ thống liên quan đến tài chính, ngân hàng, hay thương mại điện tử.

Hãy thử áp dụng vào dự án của bạn ngay hôm nay để cảm nhận sự tiện lợi và hiệu quả mà Laravel mang lại!

Toàn Nguyễn
Toàn NguyễnTác giả

Tác giả tại CodeTutHub

Xin chào, mình là Toàn 👋
Là Senior Full-Stack Developer ở HCM, đồng thời là người đứng sau CodeTutHub. Mình viết về những gì mình thực sự dùng hàng ngày — từ Laravel, Next.js, đến cách workflow lập trình với AI agents như Claude Code và Cursor.
Nếu bạn thấy bài này hữu ích, hãy subscribe newsletter hoặc kết nối với mình. Mình luôn sẵn sàng thảo luận về dự án thú vị, cơ hội remote, hoặc đơn giản là chat về tech.
Ho Chi Minh City · Open for collaboration

0 Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!
Đang trả lời
Xoá bình luận

Bạn có chắc muốn xoá bình luận này?
Hành động này không thể hoàn tác.

Bài viết liên quan

Thông báo hệ thống
Thông tin