29 Answers
使用 Laravel 5.1,您可以使用
\Request::route()->getName()
当你把它放在视图上时,这也有效{{ route(\Request::route()->getName()) }}
.非常感谢!
找到了一种方法来查找适用于 laravel 的当前路线名称v5,v5.1.28和v5.2.10
命名空间
use Illuminate\Support\Facades\Route;
和
$currentPath= Route::getFacadeRoot()->current()->uri();
对于 Laravelv5.3你可以使用:
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
@Jonathan我相信最好使用完整的命名空间以避免任何潜在的冲突。
对 laravel 8 有什么建议吗?
如果您想在多条路线上选择菜单,您可以这样做:
<li class="{{ (Request::is('products/*') || Request::is('products') || Request::is('product/*') ? 'active' : '') }}"><a href="{{url('products')}}"><i class="fa fa-code-fork"></i> Products</a></li>
或者,如果您只想选择单个菜单,您可以这样做:
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
也在测试中拉拉维尔 5.2
希望这对某人有所帮助。
也在 Laravel 5.3 中测试过
也在 Laravel 7.5.2 中测试过
在 Laravel 5.7 中测试
如果你需要url, 不是路线名称,您不需要使用/要求任何其他类:
url()->current();
这将返回错误:“调用非对象上的成员函数 current()”。 url() 返回一个字符串,而不是一个对象,所以我认为这不可能奏效。也许您正在考虑其他方法或对象,而不是 url()?
不,我每天都用这个。查看官方文档
我懂了。这仅适用于5.2 或更高版本.但它相当不错。
Laravel 5.2 你可以使用
$request->route()->getName()
它会给你当前的路线名称。
这实际上是不正确的。这name()
方法将添加或更改名称,而getName()
方法返回它。
我应该使用哪个命名空间来查找路由名称?我使用了 Illuminate\Support\Facades\Route 但结果为空。
那是正确的类。您的路线可能没有指定名称。请注意,路由名称和 URI 是不一样的。
这里是正确答案stackoverflow.com/questions/27397487/…
你为什么需要它?