🎁 50% de descuento en planes Mensual y PRO

3d: 2h: 41m:29s'
Juan Ariel Vasquez Hernandez
Juan Ariel Vasquez Hernandez
Laravel
Comparte:

Duplicado de rutas en Laravel

Hola mucho gusto tengo una duda en Laravel,
Seria correcto duplicar una ruta que hagan referencia al mismo controlador y metodo por ejemplo:
Route::get('contactos', 'ContactosController@index')->name('contact.contactos');
Route::get('process_group/contactos', 'ContactosController@index')->name('contact.projcessgroup');
Explico, lo que sucede es que estoy añadiendole en un menu desplegable un remarcado para que el usuario vea en donde esta parado pero este menu tiene 3 secciones, en las diferentes opciones hacen referencia por ejemplo a la ruta de contactos y para remarcar donde esta parado le agrego una clase active con esta funcionalidad 
Request::is('contactos') ? 'active' : '' 
pero como en otras opciones utilizan esta ruta y tienen esta funcionalidad para agregar la clase active entonces se me remarca en los lugares donde esta la funcionalidad, de momento lo que e pensado hasta ahora es duplicar la ruta y cambiarsela, para no crear esa colision, lo tengo duplicado y funciona correctamente, pero me gustaria saber si seria correcto o mala practica duplicarlas?
Agradesco sus comentarios.
Jorge García
Jorge García (2780 xp)
Hola Juan, no entiendo muy bien tu explicación, no veo la necesidad de duplicar rutas, pero tendría que ver más de tu código para entender mejor el porqué de esa duplicación y cómo evitarla. 
Juan Ariel Vasquez Hernandez
Juan Ariel Vasquez Hernandez (346 xp)
Ok en un menu lateral hay 2 opciones de menu desplegable de 3 niveles y en el ultimo nivel estan los enlaces que contiene las opciones a otras paginas, en este caso entre ellas esta contratos, y este enlace de contratos esta en otras opciones del menu desplegable utilizando la misma ruta y la misma funcionalidad, lo que yo quiero es que se resalte o quede marcado en la opcion que estaria hacaiendo click agregandole una clase "active" que llena de fondo azul donde estoy parado, el detalle es que se remarca en todos los lugares donde se esta utilizando esta ruta que tiene el mismo condicional de 
Request::is('contracts'):
la ruta utilizada es:
Route::get('/contracts', 'ContractController@index');

Codigo del enlace:
<li class=" {{ (Request::is('contracts') ? 'active' : ' ') }}">
     <a href="{{ url('contracts') }}">{{ __('sidebar.contracts') }}</a>
</li>
Nota: Esta mismo codigo se utiliza en otros lugares del menu lateral.

Esto funciona perodonde se utiliza este mismo codigo tambien se remarca, entonces como puedo independizar esta manera de remarcarlo, solamente se remarque donde estoy haciendo clic y no en las demas opciones que estarian en otra parte del menu, aunque acceden a esta misma ruta, por ello pense en duplicar la referencia al mismo controlador y metodo pero cambiandole el nombre de la ruta por ejemplo:

Route::get('knowledge_area/contracts', 'ContractController@index');
Route::get('process_group/contracts', 'ContractController@index');

entonces en el codigo del menu agregaria esto:
Esto en una opcion del menu desplegable:
<li class=" {{ (Request::is('knowldege_area/contracts') ? 'active' : ' ') }}">
     <a href="{{ url('knowledge_area/contracts') }}">{{ __('sidebar.contracts') }}</a>
</li>

Este otro en otra parte del menu donde se agregaria:
<li class=" {{ (Request::is('process_group/contracts') ? 'active' : ' ') }}">
     <a href="{{ url('process_group/contracts') }}">{{ __('sidebar.contracts') }}</a>
</li>

ya con ello se remarca solo donde estoy haciendo click a esa ruta, si necesitase capturas indicarme a donde podria enviarselas, que veo que aca no puedo subirlas.
Espero haberme podido explicar correctamente que es lo quiero expresarle.

Agredesco su apoyo, que se encuentre bien saludos.