Closed insign closed 8 years ago
Cara eu usei um "jQueryzinho" e deu certo:
esse era meu menu navbar.blade.php
<nav class="main-nav">
<ul class="list-unstyled">
<li class="active">
<a href="http://seudominio/index" id="home">Home</a>
</li>
<li>
<a href="http://seudominio/empresa" id="empresa">Empresa</a>
</li>
<li>
<a href="http://seudominio/pecas" id="pecas">Peças</a>
</li>
<li>
<a href="http://seudominio/servicos" id="servicos">Serviços</a>
<ul>
<li><a href="http://seudominio/servicos/manutencao">Manutenção</a></li>
<li><a href="http://seudominio/servicos/recuperacao">Recuperação de peças</a></li>
<li><a href="http://seudominio/servicos/restauracao">Restauração</a></li>
<li><a href="http://seudominio/servicos/adesivo">Adesivar/Logomarca</a></li>
</ul>
</li>
<li>
<a href="http://seudominio/equipamentos" id="equipamentos">Equipamentos/Venda</a>
</li>
<li>
<a href="http://seudominio/blog" id="blog">Blog</a>
</li>
<li>
<a href="http://seudominio/local">Local</a>
</li>
<li><a href="http://seudominio/contato" id="contato">Contato</a></li>
</ul>
</nav> <!-- end .main-nav -->
e esse meu js
$(document).ready(function(){
var aurl = window.location.pathname;
$('.main-nav li a[href$="'+aurl+'"]').parents('li').addClass('active');
});
espero que te ajude :)
Muito bom @henriquesousa !
Se caso queira uma classe no próprio PHP, segue:
use Route;
use URL;
class ActiveMenu
{
/**
* Compares given route name with current route name.
*
* @param string $routeName
* @param string $output
* @return boolean
*/
public static function isActiveRoute($routeName, $output = "active")
{
if (Route::currentRouteName() == $routeName) return $output;
return null;
}
/**
* Compares given URL with current URL.
*
* @param string $url
* @param string $output
* @return boolean
*/
public static function isActiveURL($url, $output = "active")
{
if (URL::current() == url($url)) return $output;
return null;
}
/**
* Detects if the given string is found in the current URL.
*
* @param string $string
* @param string $output
* @return boolean
*/
public static function isActiveMatch($string, $output = "active")
{
if (strpos(URL::current(), $string)) return $output;
return null;
}
/**
* Detects if the given string is found in the current URL.
*
* @param string $string
* @param string $output
* @return boolean
*/
public static function areActiveMatchs(array $stringNames, $output = "active")
{
foreach ($stringNames as $stringName)
{
if (strpos(URL::current(), $stringName)) return $output;
}
return null;
}
/**
* Compares given array of route names with current route name.
*
* @param array $routeNames
* @param string $output
* @return boolean
*/
public static function areActiveRoutes(array $routeNames, $output = "active")
{
foreach ($routeNames as $routeName)
{
if (Route::currentRouteName() == $routeName) return $output;
}
return null;
}
/**
* Compares given array of URLs with current URL.
*
* @param array $urls
* @param string $output
* @return boolean
*/
public static function areActiveURLs(array $urls, $output = "active")
{
foreach ($urls as $url)
{
if (URL::current() == url($url)) return $output;
}
return null;
}
}
request()->is('users*')
request()->is('users*')
request()->is('users/create')
request()->is('custom/*/path')
Show em @vinicius73 !!
Muito boa essa dica!!! Temos que pagar uma cerveja pro @vinicius73
Suco de laranja com morango @julihermes :p
:p
Melhor maneira de destacar links/menus ativos
Quando geramos links de menu, tem várias formas de mostrar o link ativo (página atual)
Várias formas foram listadas aqui: https://www.facebook.com/groups/laravelbrasil/permalink/809229245765799/
Mas qual a melhor?