Pada saat menampilkan data yang berhubungan dengan uang, tentunya kita tidak terlepas dari format mata uang salah satunya solusinya adalah menggunakan number_format di sisi controller pada saat data ingin ditampilkan di view.
Namun penulisan dengan number_format pada setiap data yang diload merupakan hal yang kurang efisien, dikarenakan kita akan menulis number_format pada etiap data yang akan ditampilkan.
Di Laravel kita dapat menambahkan directive custom dimana di dalam directive custom ini bertujuan untuk melakukan format mata uang, dalam tutorial ini kita akan mecoba membuat format mata uang rupiah.
Berikut langkah-langkah menambahkan directive custom currency di Laravel :
- Buka file AppServiceProviders yang terdapat di folder App\Providers\AppServiceProviders.
- Dikarenakan kita akan membuat directive custom maka kita use dahulu facade bladenya dengan cara serperti berikut :
use Illuminate\Support\Facades\Blade;
- Selanjutnya pada method boot tambahkan baris seperti berikut :
Blade::directive('currency', function ( $expression ) { return "Rp. <?php echo number_format($expression,0,',','.'); ?>"; });
Kode di atas berfungsi untuk membuat format rupiah dan kita beri nama directive custom di blade dengan nama currency.
- Setelah kita menambahkan custom directive currency di atas kita dapat memanggilnya di Laravel Blade seperti berikut :
@currency($data->values)
Berikut contoh lengkap pada file blade Laravel :
<tbody> @foreach ($barang as $item) <tr> <td>{{ $item->namabarang }}</td> <td>{{ $item->satuan }}</td> <td>@currency($item->hargabeli) </td> <td>@currency($item->hargajual) </td> </tr> @endforeach </tbody>
Untuk mempelajari detail mengenai laravel blade anda dapat membacanya disini. Laravel Blade memberikan kita kemudahan dalam menambahkan directive custom, dengan menambahkan directive custom currency sepert di tutorial ini kita tidak perlu melakukan format number di sisi controller pada setiap controller dikarenakan hal itu sangat tidak efektif.
Demikian tutorial kali ini, semoga bermanfaat, jika ada pertanyaan silahkan tuliskan di kolom komentar.
Be the first to comment