ESTO ES MÁGICO request()-routeIs('d-category-*') en Laravel

Cansado estar preguntando a cada rato si te encuentras definido en esta ruta o en esta otra ruta y simplemente para esto para indicar cuál es tu ruta actual y poner:

<flux:navlist.item icon="wrench-screwdriver" :href="route('d-category-index')" :current="request()->routeIs('d-category-index') || request()->routeIs('d-category-create') || request()->routeIs('d-category-create')" wire:navigate>{{ __('Category') }}</flux:navlist.item>

Podemos poner un *:

d-category

Simplemente esto es el prefijo:

<flux:navlist.item icon="wrench-screwdriver" :href="route('d-category-index')" :current="request()->routeIs('d-category-*')" wire:navigate>{{ __('Category') }}</flux:navlist.item>

Que siempre va a tomar y a partir de aquí puedes colocar lo que te venga en gana por lo tanto si sigues un buen nombrado para tus rutas:

Route::get('/', App\Livewire\Dashboard\Category\Index::class)->name("d-category-index");
Route::get('/create', App\Livewire\Dashboard\Category\Save::class)->name("d-category-create");
Route::get('/edit/{id}', App\Livewire\Dashboard\Category\Save::class)->name("d-category-edit");

Seguramente, en este caso, para estas rutas que yo tengo, puedes ver que todas comparten el mismo prefijo de categoría, y simplemente varía —por decirlo así— la operación: index, crear o editar. Por lo tanto, este asterisco va a tomar o va a funcionar tanto para index, como para crear o editar. Así que puedes notar que, con esta única regla de aquí, ya cubrí todas las páginas que comiencen con categoría, sin importar lo que venga después; todo se va a quedar marcado sin ningún problema.

Por lo demás, no hay mucho misterio. Simplemente estamos colocando el request (la petición) y estamos preguntando, mediante un método que ya existe, si la ruta es exactamente la que tenemos definida. Este método devuelve un booleano gracias a la función llamada routeIs.

En este caso, otra vez, es un componente de Livewire, y funciona así: tú podrías colocar tu clase, algún condicional… lo que te venga en gana, dependiendo del estilo que estés utilizando. Pero aquí, al ser un componente de Flux, lo que estamos indicando con current es un booleano que activa el bordeado que ves por acá si es true; y si es false, simplemente no se activa.

Lo importante aquí es la condición; la parte del estilo depende completamente de lo que estés usando en tu proyecto.

Acepto recibir anuncios de interes sobre este Blog.

Te comento como puedes definir prefijos para preguntar por la ruta actual.

| 👤 Andrés Cruz

🇺🇸 In english