Kamis, 23 September 2021

Memahami Laravel Shorthand: Tutorial Lengkap

Dalam post kali ini, kita akan membahas short syntax yang ada di Laravel yang Anda sendiri sering gunakan teknik yang berulang - ulang yang padahal bisa dibuat lebih simple.

Laravel
Tips and Tricks

Dalam post kali ini, kita akan membahas short syntax yang ada di Laravel yang Anda sendiri sering gunakan teknik yang berulang - ulang yang padahal bisa dibuat lebih simple.

Nullsafe

Pertama sekali, kita akan bahas tentang null safe operator.

// Common
is_null($object->relation) ? null : $object->relation->id;

// Short
optional($object->relation)->id

Pastinya jika Anda menggunakan PHP 7, Anda bisa menggunakan hal ini.

// php 7
$object->relation->id ?? null

Dan jika Anda menggunakan PHP 8, bisa seperti ini.

$object?->relation?->id;

Next, kita akan bahas tentang mengambil single data dari database.

// common
User::first()->name;

//short
User::value('name');

Saat kita ingin menampilkan data, seiyanya kita harus menampilkan yang penting-penting saja, karena tidak baik menampilkan data yang tidak penting, dan itu juga mempengaruhi kinerja aplikasi.

// Common
User::select('name', 'email')->get();

// Short
User::get(['name', 'email']);

Ordering

Pernah gak berfikir ingin menampilkan data dari yang pertama kali dibuat.

// Common
User::orderBy('created_at', 'asc')->get();

// Short
User::oldest()->get();

Random Order

Mungkin Anda ingin menampilkan satu data secara acak. Seperti contoh, jika Anda perhatikan halaman beranda pada Parsinta, itu testimonial yang terpilih kan secara acak. Berikut adalah shorthand nya.

// common
User::get()->random(1)->first();

// short
User::inRandomOrder()->first();

Where

Lagi-lagi masih tentang menampilkan data, lebih tepatnya dengan spesipik column

// Common
User::orderBy('age', 'desc')->get();

// Short
User::latest('age')->get();

where statement. Simple but sure.

// Common
User::where('email', '=', '[email protected]')->first();

// Short
User::whereEmail('[email protected]')->first();

Carbon

Dan kali ini tentang Carbon, lebih mudah jika tidak menggunakan class.

// Common
Carbon\Carbon::now();
Carbon\Carbon::today();

// Short
now();
today();

Bagaimana dengan request, kareana ini sering sekali kita gunakan untuk membuat conditional.

// Common
$request->has('value') ? $request->value : 'default';

//Short
$request->get('value', 'default');

Session

Kali ini tentang session, mungkin tidak sering Anda gunakan, tapi saya lumayan sering, jadi sangat membantu juga.

Put

Yang biasa kita lakukan untuk start session nya.

// Common
Session::put('key', $value);

//Short
session(['key' => $value]);

Get

Menampilkan session yang telah di tetapkan.

Session::get('cart'); // Common
$request->session()->get('cart'); // Or

session('cart'); // Short

Where Has

Kali ini ada hubungannya dengan Laravel terbaru yaitu versi 8.57.0, sekarang Anda bisa langsung menggunakan whereRelation dari model nya.

$user = User::find(5);

// Common
Post::whereHas('user', fn ($query) => $query->where('id', $user->id))->get()->pluck('title');

// Short
Post::whereRelation('user', 'id', $user->id)->get()->pluck('title');

Report

Ketika laravel v9.42, ada penambahan fungsi baru yaitu report_if dan report_unless.

// Common
if(! Auth::user()->isAdmin()){
    report('Is route need permission user');
}

// Shorten/avoid `if` with:
report_if(
    Auth::user()->isAdmin(),
    'Is route need permission admin'
);

// or
report_unless(
    Auth::user()->isAdmin(),
    'Is route need permission user'
);

Itu saja untuk tips and trik kali ini. Semoaga bermanfaat. Share jika kalian suka. Bookmark jika kalian tidak sempat membaca. Saya Irsyad. See you next time 🙂