Banyak pemula yang bingung tentang helper URL, karena itu saya membuat penjelsan lebih detail tentang helper ini.
Seperti apa bedanya //www.petanikode.com/index.php6 dengan //www.petanikode.com/index.php7 dan kapan kita harus memakainya?
Saya sengaja memisah penjelsannya dengan 📖 tutorial utama Codeigniter, agar bisa membahas lebih mendalam.
Baiklah..
Mari kita mulai!
Apa itu Helper URL?
Helper URL merupakan helper yang disediakan oleh Codeigniter yang berisi fungsi-fungsi untuk mengolah URL.
Menurut saya:
Helper ini merupakan helper yang paling sering digunakan di dalam aplikasi.
Helper URL bisa kita pakai di dalam Controller dan View.
Kalau di dalam model bisa tidak?
Bisa-bisa saja.
Tapi..
Itu bukanlah praktek yang baik.
Karena tugasnya model adalah berurusan dengan data.
Lalu gimana cara menggunakan Helper URL?
Mari kita bahas:
Cara Menggunakan Helper URL
Helper URL dapat kita gunakan setelah melakukan load helper.
Contoh:
$this->load->helper('url');
Load helper bisa kita lakukan di dalam Controller.
🗒 Catatan:
Helper URL di Codeigniter 4 sudah di-load secara otomatis, jadi kita tidak perlu load manual.
Jika ingin di-load otomatis pada Codeigniter 3, maka kita bisa tentukan pada file //www.petanikode.com/index.php8 seperti ini:
$autoload['helper'] = array('url');
Setelah berhasil di-load, barulah kita bisa menggunakan fungsi-fungsi yang disediakan oleh helper URL.
Apa saja fungsi-fungsinya?
Mari kita bahas satu-per-satu:
Fungsi-fungsi di dalam Helper URL
Helper URL menyediakan beberapa fungsi yang memudahkan kita saat berurusan dengan URL.
1. Fungsi //www.petanikode.com/index.php7
Fungsi site URL akan mengembalikan nilai berupa URL berdasarkan konfigurasi <a href="<?= site_url('login') ?>">Login</a>0 dan <a href="<?= site_url('login') ?>">Login</a>1 yang sudah ditentukan di dalam config.
Contoh:
Misalnya konfigurasi di aplikasi kita seperti ini:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';
Maka saat kita menggunakan fungsi //www.petanikode.com/index.php7, ia akan menghasilkan:
//www.petanikode.com/index.php
Kapan kita harus menggunakan //www.petanikode.com/index.php7?
Gunakanlah fungsi //www.petanikode.com/index.php7 saat…
Membuat link ke halaman tertentu:
<a href="<?= site_url('login') ?>">Login</a>
Melakukan redirect ke halaman tetentu:
redirect(site_url('login'));
Membuat URL action pada form:
<form action="<?= site_url('login') ?>"> </form>
2. Fungsi //www.petanikode.com/index.php6
Fungsi //www.petanikode.com/index.php6 hampir sama seperti //www.petanikode.com/index.php7 yang menghasilkan URL berdasarkan kofigurasi <a href="<?= site_url('login') ?>">Login</a>0. Tetapi, //www.petanikode.com/index.php6 tidak menyertakan redirect(site_url('login'));0 di belakangnya.
Fungsi //www.petanikode.com/index.php6 berfungsi untuk menghasilkan root URL dari aplikasi.
Misalnya konfigurasi di aplikasi kita seperti ini:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';
Maka saat kita menggunakan fungsi //www.petanikode.com/index.php6, ia akan menghasilkan:
//www.petanikode.com/
Kapan kita harus menggunakan //www.petanikode.com/index.php6?
Gunakanlah //www.petanikode.com/index.php6…
Saat membuat link/URL untuk CSS dan Javascript:
<link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>
Maka akan menghasilkan URL seperti ini:
$autoload['helper'] = array('url');0
Fungsi //www.petanikode.com/index.php6 biasanya sering kita pakai untuk membuat URL atau link file statis seperti gambar, CSS, javascript, Video, dan file yang diupload.
Apa perbedaan //www.petanikode.com/index.php6 dengan //www.petanikode.com/index.php7?
Berdasarkan contoh yang saya berikan, sepertinya kamu sudah bisa menebak apa bedanya //www.petanikode.com/index.php7 dengan //www.petanikode.com/index.php6.
Yap! Perbedaanya terletak pada URL yang di hasilkan.
Coba perhatikan ini:
$autoload['helper'] = array('url');1
Pada kasus ini, kita menggunakan //www.petanikode.com/index.php6 dan //www.petanikode.com/index.php7 untuk membuat link CSS.
Hasilnya tentu akan berbeda.
Link yang valid adalah link yang menggunakan //www.petanikode.com/index.php6. Sedangkan //www.petanikode.com/index.php7 menambahkan redirect(site_url('login'));0 yang akan membuat link file CSS menjadi salah dan pasti tidak akan ditemukan.
Karena itu, untuk membuat link static assets gunakanlah //www.petanikode.com/index.php6 bukan //www.petanikode.com/index.php7.
3. Fungsi <form action="<?= site_url('login') ?>"> </form>7
Fungsi ini akan menghasilkan URL yang sedang dibuka.
Misalnya kita sedang membuka URL berikut:
$autoload['helper'] = array('url');2
Maka saat memanggil fungsi <form action="<?= site_url('login') ?>"> </form>7, ia akan menghasilkan URL persis seperti di atas.
⚠️ Peringatan Penting!
Fungsi ini mengadung bug pada Codeigniter 4.1.2, dan bisa diganti dengan fungsi <form action="<?= site_url('login') ?>"> </form>9
4. Fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';0
Fungsi ini akan menghasilkan segmen URI berdasarkan halaman yang sedang dibuka.
Misalkan kita sedang membuka halaman ini:
$autoload['helper'] = array('url');3
Maka fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';0 akan menghasilkan:
$autoload['helper'] = array('url');4
Fungsi ini biasanya dipakai saat kita ingin membuat breadcrumb.
5. Fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';2
Fungsi ini akan menghasilkan nilai berdasarkan konfigurasi <a href="<?= site_url('login') ?>">Login</a>1.
Misalkan kofigurasinya seperti ini:
$autoload['helper'] = array('url');5
Maka fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';2 akan menghasilkan:
$autoload['helper'] = array('url');6
6. Fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';5
Fungsi ini akan menghasilkan element link. Biasanya digunakan untuk membuat link.
Contoh:
$autoload['helper'] = array('url');7
7. Fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';6
Fungsi ini akan menghasilkan link untuk membuka jendela popup.
Contoh:
$autoload['helper'] = array('url');8
Maka saat link diklik, halaman $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';7 akan dibuka di jendela pop baru.
8. Fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';8
Fungsi $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';8 akan menghasilkan link untuk alamat email. Saat link diklik, maka akan membuka aplikasi mail client.
Contoh:
$autoload['helper'] = array('url');9
9. Fungsi //www.petanikode.com/0
Sama seperti $config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';8 yang menghasilkan link untuk email. Akan tetapi alamat emailnya diproteksi, sehingga akan lebih aman dari bot spam.
Contoh:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';0
10. auto_link()
Kalau ini merupakan gabungan dari fungsi no. 6, 7, dan 9. Fungsi //www.petanikode.com/2 akan menghasilkan sebuah link dari parameter yang diberikan.
Parameter dapat berupa alamat email atauapun URL.
Contoh:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';1
11. Fungsi //www.petanikode.com/3
Fungsi ini menghasilkan URL string berdasarkan teks yang diberikan pada parameter.
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';2
Biasanya fungsi ini dipakai untuk membuat URL seperti slug.
Fungsi //www.petanikode.com/3 bisa juga menghasilkan URL dengan underscore.
Contoh:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';3
12. Fungsi //www.petanikode.com/5
Fungsi ini akan menambahkan //www.petanikode.com/6 pada paramter URL yang diberikan.
Contoh:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';4
13. Fungsi //www.petanikode.com/7
Fungsi ini untuk melakukan redirect atau pengalihan ke halaman tertentu.
Contoh penggunaan:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';5
Fungsi Helper URL di Codeigniter 4
Fungsi Helper URL di Codeigniter 4 tidak jauh berbeda dengan Codeigniter 3. Hanya saja ada beberapa fungsi tambahan.
Berikut ini fungsi-fungsi helper URL yang ditambahkan di Codeigniter 4:
1. Fungsi //www.petanikode.com/8
Fungsi //www.petanikode.com/8 merupakan fungsi yang menghasilkan alamat URL dari halaman yang dikunjungi sebelumnya.
Misalnya:
Saya membuka halaman ini,
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';6
Kemudian beralih ke
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';7
Nah, jika kita menjalankan //www.petanikode.com/8 di halaman login..
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';8
Maka akan menghasilkan:
$config['base_url'] = '//www.petanikode.com/'; $config['index_page'] = 'index.php';6
2. Fungsi <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>1
Fungsi ini akan menghasilkan URL absolut yang menuju ke sebuah method pada Controller.
Biasanya dipakai untuk membuat link seperti //www.petanikode.com/index.php7.
Contoh penggunaan:
//www.petanikode.com/index.php0
Contoh penggunaan di dalam View:
//www.petanikode.com/index.php1
3. Fungsi <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>3
Fungsi <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>3 berfungsi untuk mengecek URL pada halaman yang sedang dibuka. Fungsi ini akan menghasilkan <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>5 jika hasil cek sama dengan yang ditentukan.
Contoh:
//www.petanikode.com/index.php2
Jika kita membuka halaman-halaman berikut
//www.petanikode.com/index.php3
Maka fungsi <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>3 akan menghasilkan <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>5, karena kita sedang membuka halaman admin.
Biasanya fungsi <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>3 digunakan untuk menentukan class active pada menu.
Contoh:
//www.petanikode.com/index.php4
4. Fungsi <link href="<?= base_url('css/style.css') ?>" /> <script src="<?= base_url('js/app.js') ?>"></script>9
Fungsi ini sama seperti //www.petanikode.com/3 yang berfungsi untuk mengubah teks menajdi URL. Namun, fungsi ini juga mengubah karakter aksen secara otomatis.