其實在blade文件中可這樣做判斷
@if(Route::currentRouteName() == "user")
class="active"
@endif
但如果是情況更複雜的,比如是 你 user.index. user.edit. user.create 都需要active等等?
又有人會這樣做
<li {{ Request::is('/url') ? ' class="active"' : null }}>...</li>
其實都是每次要手動去改,或者要思考有沒有打漏了什麼條件可能性
後來我在laracasts上找到個很不錯的方法
前題要先建立你自己的helpers.php 詳細先請參考此篇文章的第4點:建立一個常用的function file, 並全站式自動載入
然後去你的helpers.php, 新增2個function
function isActiveRoute($route, $output = "active") {
if (Route::currentRouteName() == $route) {
return $output;
}
}
function areActiveRoutes(Array $routes, $output = "active") {
foreach ($routes as $route) {
if (Route::currentRouteName() == $route) {
return $output;
}
}
}
以後你就可以用這樣的方式在blade中做判斷了:
<li class="{{ isActiveRoute('home') }}"><a href="{{ route('home') }}">Home</a></li>
<li class="{{ areActiveRoutes(['client.index', 'client.create', 'client.show']) }}">
<a href="{{ route('client.index') }}"><i class="fa fa-users"></i> Clients</a>
</li>