5 Helpers Laravel yang Perlu Kamu Tau!

Ahmad Hakim 25 Februari 2020

5 Helpers Laravel yang Perlu Kamu Tau!

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', 'BurgersController@index')->name('burgers'); route('burgers'); // http://example.com/burgers route('burgers', ['order_by' => 'price']); // http://example.com/burgers?order_by=price Route::get('burgers/{id}', 'BurgersController@show')->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}', 'EmployeesController@show')->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}', 'EmployeesController@show')->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