Custom helper Laravel
Bài đăng này đã không được cập nhật trong 4 năm
Chào mọi người hôm nay mình sẽ giới thiệu đến các bạn làm thế nào để tạo một hàm helper trong ứng dụng laravel và làm thế nào để gọi helper đã tạo ở bất kì nơi nào trong project laravel. Các bạn chỉ cần đi theo step-by-step trong bài này là các bạn sẽ tự tạo được cho riêng mình custom helper đấy.
Trong Laravel bạn có thể custom helper theo ý muốn của bạn và gọi nó ở bất kì đâu trong project giống như là cách gọi của route, blade view, models, controller... đây thực sự là một giải pháp tốt để tránh việc bị trùng lặp code và cũng dễ dàng bảo trì source code còn một điều quan trọng là sẽ tiết kiệm được rất nhiều thời gian . Trọng tâm bài viết này mình sẽ hướng dẫn cho các bạn một ví dụ về cách tạo/sử dụng custom helper.
1. Ví dụ
Mình sẽ lấy một ví dụ mà chúng ta thường gặp nhất đó là khi chúng ta cần chuyển đổi hay format lại định dạng của ngày tháng năm chảng hạn.
2. Tạo file helper
Ở bước đầu tiên này chúng ta cần phải tạo file helper, mình sẽ đặt luôn tên là Helper
cho đơn giản app/Helpers/Helper.php
Trong file Helper.php
mình sẽ viết một hàm tiện ích dùng để định dạng ngày tháng như dưới đây:
if (!function_exists('formatDate')) {
function formatDate($date, string $format = 'Y/m/d')
{
if ($date instanceof \Carbon\Carbon) {
return $date->format($format);
}
return $date;
}
}
3. Thêm file helper vào file composer.json
Ở bước này chúng ta sẽ thêm đường dẫn của file Helper.php
đã tạo ở trên vào file composer.json
như sau. Trong file composer.json
tìm đến phần files
và thêm vào đường dẫn file helper như thế này:
"autoload": {
"classmap": [
...
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Helpers/Helper.php"
]
},
4. Run Command
Vậy là bạn đã tạo xong file helper của chính bạn rồi đấy nhưng mà khoan đã chúng ta cần phải chạy composer load như sau:
composer dump-autoload
Sau khi bạn đã chạy lệnh trên thì bạn có thể sử dụng function formatDate
ở bất kì đâu trong project chảng hạn như bạn gọi trong file blade.php
chảng hạn:
{{ formatDate($profile->birth_day) }}
hay trong controler hoặc bất kì đâu cũng tương tự như vậy:
$product->create([
'name' => 'Áo thun nam nữ'
'size' => Size::M,
'date_ship' => formatDate($now),
...
]);
5. Kết luận
Helper thật là tiện đúng không nào , trong bài viết này mình đã hướng dẫn các bạn làm thế nào để tạo một helper function và làm thế nào để gọi helper function trong project laravel.
6. Tham khảo
All rights reserved