Trong Laravel, có lúc bạn muốn tạo function để code xử lý 1 tác vụ nào đó, và muốn function này chỗ nào cũng có thể gọi được nó. Helper sẽ giải quyết vấn đề này, có thể gọi helper function trong Controller, Model, View hoặc bất kỳ file nào trong cấu trúc của Laravel (mọi lúc mọi nơi). Helper giúp giảm thiểu việc viết đi viết lại cùng một đoạn mã. Trong hướng dẫn này, tôi sẽ trình bày một ví dụ về cách tạo và gọi helper function trong Laravel.
Bài viết khác
Tạo file
Có thể tạo file với bất kỳ tên gì bạn muốn, ở đây tôi sẽ tạo folder mới app/Helpers
và tạo file CommonHelper.php
, trong folder app/Helpers
có thể tạo nhiều file helpers với các nhiệm vụ khác nhau.
Ví dụ, trong file vừa tạo, thêm đoạn code function chuyên xử lý tác vụ thay thế số “0” bằng ký tự “+mã quốc gia” (ví dụ +84) trong số điện thoại
<?php if(!function_exists('replacePhone')) { function replacePhone($phone, $countryCode = '84') { $phone = preg_replace('/^0?/', '+'.$countryCode, $phone); return $phone; } } ?>
Lúc này gọi function này ra nó chưa chạy đâu, vì file CommonHelper.php
chưa được add vào trong hệ thống của Laravel.
Add vào trong file composer.json
Trong bước thứ hai này, tôi sẽ thêm đường dẫn của file helpers vào trong file composer.json
. Hãy đi tới thư mục gốc của dự án và mở file composer.json
và cập nhật mã cung cấp bên dưới vào:
"autoload": { "files": [ "app/Helpers/CommonHelper.php" ], "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories" ] },
Khởi chạy Command for Composer Autoloading
Đến bước cuối cùng này, hãy mở terminal trong source Laravel lên và chạy dòng lệnh
composer dump-autoload
Sau khi chạy xong, đã có thể sử dụng helper function bằng cách gọi nó ra rồi.
Sử dụng Helper Function
Gọi trong Laravel Blade
<h2><?php echo replacePhone('0986209305') ?></h2>
Gọi trong Laravel Controller
public function index() { $phone = '0986209305'; $data['phone'] = replacePhone($phone); return view('home', $data); }
Kết luận
Trong hướng dẫn này, chúng ta đã học cách tạo helper function trong laravel. Và cũng như cách sử dụng / gọi các hàm helper trong blade view, controller file.
Bài viết khác