Laravel – Cara Mengecek URL yang Sedang Diakses di Blade

Saya sedang mencari tahu bagaimana caranya mengecek URL yang sedang diakses di Laravel Blade.

Saya akan menggunakannya untuk membuat menu/navigasi yang aktif dan navigasi mana yang non-aktif.

Jadi jika URL nya /home misal, maka navigasi Home aktif.

Berikut ini cara yang saya lakukan untuk mengecek URL yang sedang diakses di Laravel Blade.

Solusi

Solusinya adalah dengan menggunakan class Request dan ternary operator.

{{ Request::is('home') ? 'active' : '' }}

Jadi script tersebut melakukan pengecekan jika URL nya home maka hasilnya active dan jika bukan hasilnya kosong.

Saya menggunakannya untuk membuat menu seperti berikut.

<li class="{{ Request::is('/') ? 'active' : '' }}"><a href="/home">Home</a></li>
<li class="{{ Request::is('user') ? 'active' : '' }}"><a href="/user">User</a></li>

Update (15 November 2019)

Ternyata setelah menggunakan script diatas, ada beberapa kondisi yang membuat script tersebut tidak berjalan dengan semestinya.

Meskipun URL yang diakses user tetap saja tidak membuat menu berubah menjadi active. Dan akhirnya saya mencari solusi lain.

{{ request()->segment(1) == 'user' ? 'active' : '' }}

Disini saya menggunakan segment untuk mengecek URL yang sedang diakses. Segment 1 berarti segment pertama dari URL.

http://127.0.0.1:8000/user 
http://127.0.0.1:8000/user/tambah 

user pada URL merupakan segment 1 sementara tambah merupakan segment 2.

Setelah diganti menjadi menggunakan segment, akhirnya aplikasi yang saya buat bisa melakukan pengecekan URL yang sedang diakses dan menu pun berubah menjadi active.

<li class="{{ request()->segment(1) == 'home' ? 'active' : '' }}"><a href="/home">Home</a></li>
<li class="{{ request()->segment(1) == 'user' ? 'active' : '' }}"><a href="/user">User</a></li>

Semoga tutorial singkat ini bermanfaat.

Komentar