Promo Lebaran, Kelas Online CODEPOLITAN Cukup Bayar Setengah Harga KLAIM PROMO
Lebih terarah belajar coding melalui Kelas Online dan Interactive Coding Lihat Materi Belajar

5 Helpers Laravel yang Perlu Kamu Tau!

Ditulis oleh Hakim Sembiring, dipublikasi pada 25 Feb 2020 dalam kategori Tutorial
5 Helpers Laravel yang Perlu Kamu Tau! - CodePolitan.com

Kalau bicara soal Framework Laravel ini memang gak ada habisnya. Pasalnya banyak banget helpers yang dikembangkan Laravel agar proses pengembangan aplikasi lebih efisien. Nah kali ini kita coba simak yuk, 5 Helpers Laravel yang Perlu Kamu Tau!

abort_if()

Helper ini berfungsi sebagai exception. Jadi, ketika ada suatu kondisi yang memiliki nilai true, maka akan kita arahkan ke halaman tertentu atau pesan khusus dan memberhentikan proses.

abort_if(! Auth::user()->isAdmin(), 403);
abort_if(! Auth::user()->isAdmin(), 403, 'Maaf, Kamu tidak memiliki akses admin');
abort_if(Auth::user()->isCustomer(), 403);

Yang mungkin temen-temen biasanya bikin fungsi exception ini bisa lebih panjang dari help abort_if()

// In "admin" specific controller
public function index()
{
    if (! Auth::user()->isAdmin()) {
        abort(403, 'Maaf, Kamu tidak memiliki akses admin');
    }
}

// better!
public function index()
{
    abort_if(! Auth::user()->isAdmin(), 403);
}

Tapi kalau digunakan untuk hak ases, kamu bisa pelajari tentang Authorization Gates.

data_get()

Helper data_get() ini memudahkan kamu untuk mendapatkan nilai dari tipe data array atau object dengan menggunakan dot notation. Mirip dengan array_get().

$array = ['albums' => ['hiphop' => ['count' => 60]]];

$count = data_get($array, 'albums.hiphop.count'); // 60
$avgCost = data_get($array, 'albums.rock.avg_cost', 0); // 0

$object->albums->rock->count = 60;

$count = data_get($object, 'albums.rock.count'); // 75
$avgCost = data_get($object, 'albums.rock.avg_cost', 0); // 0

Nah kalo kamu ingin mengambil nilai dari suatu index yg sama secara berulang, bisa gunakan "wildcard" () diantara dot notation*-nya. Nanti Laravel akan menampilkan hasilnya menjadi tipe array. Contoh, kita akan mengambil nilai dari seluruh "count" pada masing-masing array.

$array = ['albums' => ['jazz' => ['count' => 50], 'pop' => ['count' => 13]]];
$counts = data_get($array, 'albums.*.count'); // [50, 13]

Di atas kita bisa lihat, kalau nilai dari count akan kita dapatkan dari setiap data album yang dimiliki. Hasilnya adalah [75, 12] karena sekali lagi, Laravel akan menampilkannya sebagai tipe data array.

str_plural()

Kamu pasti pernah merasa aneh, setiap membuat model beserta migration di Laravel dengan penamaan Bahasa Indonesia, maka di dalam table migration akan selalu ditambahkan huruf "s" sebagai bentuk jamak dari Bahasa Inggris. Tapi, gak semua bentuk plural Bahasa Inggris itu tinggal dikasih huruf "s" loh. Contohnya: person -> people, child -> children. Terus gimana nih biar ngebantu kita yang kurang tahu banyak Bahasa Inggris (kaya penulis) bisa tau bentuk plural dari suatu kata di dalam Laravel? Nah helper ini ngebantu kamu banget loh.

str_plural('dog'); // dogs
str_plural('cat'); // cats

str_plural('dog', 2); // dogs
str_plural('cat', 1); // cat

str_plural('child'); // children
str_plural('person'); // people
str_plural('fish'); // fish
str_plural('deer', 2); // deer

Temen-temen bisa lihat kan cara penggunaanya. Bisa ditambahkan jumlahnya sebagai paramter, karena beberapa memang ada kata yang memiliki bentuk singular dan plural yang sama.

route()

Kalo helper yang ini sih harusnya sering banget dipake ya sama pecinta Laravel. Helper ini berfungsi untuk mendapatkan nilai URL dari suatu nama route yang kita definisikan. Argument ke dua di dalam helper tersebut pun bisa kita gunakan untuk memberikan parameter.

Route::get('burgers', '[email protected]')->name('burgers');
route('burgers'); // http://example.com/burgers
route('burgers', ['order_by' => 'price']); // http://example.com/burgers?order_by=price

Route::get('burgers/{id}', '[email protected]')->name('burgers.show');
route('burgers.show', 1); // http://example.com/burgers/1
route('burgers.show', ['id' => 1]); // http://example.com/burgers/1

Route::get('employees/{id}/{name}', '[email protected]')->name('employees.show');
route('employees.show', [5, 'chris']); // http://example.com/employees/5/chris
route('employees.show', ['id' => 5, 'name' => 'chris']); // http://example.com/employees/5/chris
route('employees.show', ['id' => 5, 'name' => 'chris', 'hide' => 'email']); // http://example.com/employees/5/chris?hide=email

Digunakan untuk subdomain pun bisa sangat mudah. Semudah kamu menambahkan atribut di dalam parameter.

Route::domain('{location}.example.com')->group(function () {
    Route::get('employees/{id}/{name}', '[email protected]')->name('employees.show');
});

route('employees.show', ['location' => 'raleigh', 'id' => 5, 'name' => 'chris']); // http://raleigh.example.com/employees/5/chris

Biar greget, bisa loh kita langsung sertakan Eloquent model di dalam route()

route('burgers.show', Burger::find(1)); // http://example.com/burgers/1

base_path()

Kalo helper ini sih kamu bisa dapetin isi dari folder projectnya. Semisal mau upload file atau mau cari lokasi file yg ada di dalam project, gunakan base_path()

$path = base_path();

$path = base_path('vendor/bin');

Temen-temen bisa lihat kan contohnya. Ketika kita ingin mencari suatu user dengan ID tertentu, tapi datanya gak ada dan hasilnya akan kita tampilkan dalam layar. Maka akan menampilkan error Trying to get property of non-object. Kita coba siasati dengan optional(), hasilnya akan menampilkan null. Di mana hanya menampilkan data kosong saja, tidak sampai membuat proses memuat data ke layar akan berhenti dan error.

Ok temen-temen, 5 Helpers Laravel yang Perlu Kamu Tau ini baru contoh sedikit dari banyaknya helper yang bisa kamu pake. Silakan temukan di dalam dokumentasinya di sini untuk melihat kumpulan helpers yang dimiliki Laravel.
Referensi


background

Gabung CodePolitan Membership

Ingin belajar coding secara online dengan lebih terarah? Gabung sekarang dalam program Premium Membership di CodePolitan. Dapatkan ratusan modul belajar pemrograman premium dalam beragam format dengan materi silabus lengkap dan tersusun rapi dari awal hingga mahir.

LIHAT MATERI BELAJAR GABUNG MEMBERSHIP