Apa Saja Yang Baru Di Laravel 9?
Peningkatan Pada Aksesor dan Mutator
Laravel 9 menawarkan langkah baru untuk menuliskan accessor / mutators. Awalnya langkah mendefinisikannya dengan membuat metode dengan prefix
public function getNameAttribute($value)
{
return strtoupper($value);
}
public function setNameAttribute($value)
{
$this->attributes['name'] = $value;
}
Akan tetapi pada Laravel 9 kita bisa mendefinisikannya dengan satu method saja tanpa prefix dengan type-hint return typenya.
use Illuminate\Database\Eloquent\Casts\Attribute;
public function name(): Attribute
{
return new Attribute(
get: fn ($value) => strtoupper($value),
set: fn ($value) => $value,
);
}
Arahan Blade Tercentang / Terpilih
Dengan @checked
directive akan memudahkan kita untuk mengindikasi atribut HTML itu “checked“.
<input type="checkbox"
name="active"
value="active"
@checked(old('active', $user->active)) />
Tidak jauh berbeda @selected
berguna untuk mengindikasikan bahwa opsi selectnya harusnya “selected“.
<select name="version">
@foreach ($product->versions as $version)
<option value="{{ $version }}" @selected(old('version') == $version)>
{{ $version }}
</option>
@endforeach
</select>
Peningkatan output CLI route:list
Pada Laravel 9 hasil cetakan dari php artisan route:list mengalami banyak peningkatan, tampilannya seperti ini kira-kira.
Tampilan Pagination Bootstrap 5
Sekarang Laravel menyertakan tampilan Bootstrap 5 untuk paginationnya. Bawaannya tetap menggunakan TailwindCss kalau ingin menggunakan Boostrap 5 dapat kita definisikan pada method boot()
dalam Class App\Providers\AppServiceProvider.
use Illuminate\Pagination\Paginator;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Paginator::useBootstrapFive();
}
Controller Grup Rute
Sekarang kita bisa membuat rute grup dari Controller dengan grup rute seperti biasanya. Kemudian untuk mendefinisikan routenya kita cukup menuliskan nama methodnya.
use App\Http\Controllers\OrderController;
Route::controller(OrderController::class)->group(function () {
Route::get('/orders/{id}', 'show');
Route::post('/orders', 'store');
});
Mungkin itu sekilas apa aja yang baru pad Laravel 9 yang perlu diketahui, yang sebenarnya tidak mengubah sintaks yang sudah ada. Jadi berhenti mengeluh gara-gara versi baru Laravel rilis.