Laravel 5.6:如何在Blade模板中获取当前路由名称?
如何在Blade模板中获取当前路由名称并实现页面刷新
想要在Blade里获取当前路由名称,最靠谱的方法是使用Route::currentRouteName()这个Laravel提供的方法——它会直接返回你在路由定义里设置的name()属性值,精准又方便。
看你的代码,原来用Route::current()其实是返回了整个路由对象,直接放在window.location里会生成不符合预期的URL。推荐你改成结合route()辅助函数的写法,这样能正确生成当前路由对应的URL:
<li class="dropdown user user-menu" onclick="window.location='{{ route(Route::currentRouteName()) }}'" style="cursor: pointer;"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <i class="livicon" data-name="refresh" data-loop="true" data-color="#42aaca" data-hovercolor="#42aaca" data-size="28"></i> </a> </li>
举个例子,假设你的路由定义是这样的:
Route::get('/admin/dashboard', [AdminController::class, 'dashboard'])->name('admin.dashboard');
那Route::currentRouteName()就会返回admin.dashboard,再通过route()函数就能生成对应的/admin/dashboard URL,点击后就会重新加载这个页面。
另外,如果你的需求只是单纯刷新当前页面,其实还有更简单的方式——直接用原生JS的window.location.reload(),完全不需要涉及路由名称:
<li class="dropdown user user-menu" onclick="window.location.reload()" style="cursor: pointer;"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <i class="livicon" data-name="refresh" data-loop="true" data-color="#42aaca" data-hovercolor="#42aaca" data-size="28"></i> </a> </li>
这种写法更简洁,适合不需要跳转路由,只是刷新当前页面的场景。
内容的提问来源于stack exchange,提问作者debrata
相关产品推荐
相关产品推荐

