[英]Laravel get current route
我有一些導航鏈接,我想在laravel 5中獲取當前路線,以便我可以在我的導航中使用active
的class
。 以下是示例鏈接:
<li class="active"> <a href="/">Home</a> </li>
<li> <a href="/contact">Contact</a> </li>
<li> <a href="/about">About</a> </li>
如您所見,在Home
鏈接中有active class
,這意味着它是當前選定的路由。 但由於我使用laravel blade
所以我不會重復我的刀片中的每個導航鏈接,我不能使用活動類,因為我只有我的template.blade.php
的導航鏈接。 我怎樣才能獲得當前路由並檢查它是否等於當前鏈路? 先感謝您。
$uri = Request::path()
查看文檔
您可以使用命名路由
Route::get('/', ['as'=>'home', 'uses'=>'PagesController@index']);
然后在視圖中,您可以執行以下操作
<li {!! (Route::is('home') ? 'class="active"' : '') !!}>
{!! link_to_route('home', 'Home') !!}
</li>
所以我得到了一些小技巧。 例如,地址欄中的URL是http://localhost:8000/tourism/places
。
如果我將使用Request::path()
方法,我將獲得tourism/places
。 但我想得到的只是tourism
部分所以我所做的就是:
$currentPath = Request::path();
$values = explode("/", $currentPath);
$final = $values[0];
現在$final
變量將具有值"tourism"
。
現在為了全局變量加載,我將代碼包含在public function boot()
內的AppServiceProvider.php
。
public function boot()
{
$currentPath = Request::path();
$values = explode("/", $currentPath);
$final = $values[0];
view()->share('final', $final);
}
最后在我的刀片模板中,
<li @if ($final== "tourism") class="active" @endif>
<a href="/tourism/places">Places</a>
</li>
簡單的方法總是更好,只需使用您用來生成鏈接的相同功能,它將為您提供所有功能,包括flexibility to use wild cards
的flexibility to use wild cards
<a class="nav-link {{ Request::url() === route("products.list", [$group_key]) ? 'active' : '' }}"
href="{{ route("products.list", [$group_key]) }}"
>
LInk text
</a>
此外,您仍然只有一個地方可以管理URL-s - 您的路由器文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.