Md *_*yan 198 php laravel laravel-routing laravel-5 laravel-6
在Laravel 4中,我能够使用...获取当前路线名称
Route::currentRouteName()
Run Code Online (Sandbox Code Playgroud)
我怎么能在Laravel 5中做到这一点?
Adn*_*nan 387
试试这个
Route::getCurrentRoute()->getPath();
Run Code Online (Sandbox Code Playgroud)
要么
\Request::route()->getName()
Run Code Online (Sandbox Code Playgroud)
来自v5.+
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
Run Code Online (Sandbox Code Playgroud)
Laravel 5.3
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
Run Code Online (Sandbox Code Playgroud)
或者如果您需要动作名称
Route::getCurrentRoute()->getActionName();
Run Code Online (Sandbox Code Playgroud)
您可以在Laravel API中找到有关laravel Routes的所有信息:http ://laravel.com/api/5.0/Illuminate/Routing/Router.html http://laravel.com/api/5.0/Illuminate/Routing.html
检索请求URI
path方法返回请求的URI.因此,如果传入的请求是针对的http://example.com/foo/bar
,则path方法将返回foo/bar
:
$uri = $request->path();
Run Code Online (Sandbox Code Playgroud)
该is
方法允许您验证传入请求URI是否与给定模式匹配.*
使用此方法时,您可以将该字符用作通配符:
if ($request->is('admin/*')) {
//
}
Run Code Online (Sandbox Code Playgroud)
要获取完整的URL,而不仅仅是路径信息,您可以在请求实例上使用url方法:
$url = $request->url();
Run Code Online (Sandbox Code Playgroud)
lor*_*ger 36
使用Laravel 5.1,您可以使用
\Request::route()->getName()
Run Code Online (Sandbox Code Playgroud)
Md *_*yan 23
找到一种方法来查找当前路由名称适用于laravel v5,v5.1.28和v5.2.10
命名空间
use Illuminate\Support\Facades\Route;
Run Code Online (Sandbox Code Playgroud)
和
$currentPath= Route::getFacadeRoot()->current()->uri();
Run Code Online (Sandbox Code Playgroud)
对于Laravel laravel v5.3,您可以使用:
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
Run Code Online (Sandbox Code Playgroud)
Jig*_*sar 23
在 Laravel 7 或 8 中使用辅助函数
Run Code Online (Sandbox Code Playgroud)Get Current Route Name
request()->route()->getName()
Run Code Online (Sandbox Code Playgroud)
要检查路由是否当前最好使用宏为请求类创建自己的方法
在方法AppServiceProvider
中boot
:
use Illuminate\Support\Facades\Request;
public function boot()
{
Request::macro('isCurrentRoute', function ($routeNames) {
$bool = false;
foreach (is_array($routeNames) ? $routeNames : explode(",",$routeNames) as $name) {
if(request()->routeIs($name)) {
$bool = true;
break;
}
}
return $bool;
});
}
Run Code Online (Sandbox Code Playgroud)
您可以在刀片或控制器中使用此方法
request()->isCurrentRoute('foo') // string route
request()->isCurrentRoute(['bar','foo','xyz.*']) //array routes
request()->isCurrentRoute('blogs,foo,bar,xyz.*') //string route seperated by comma
Run Code Online (Sandbox Code Playgroud)
您可以使用内置的 laravel 路由方法
request()->routeIs('home');
request()->routeIs('blogs.*'); //using wildcard
Run Code Online (Sandbox Code Playgroud)
Fus*_*ion 22
如果您需要url而不是路由名称,则不需要使用/ require任何其他类:
url()->current();
Run Code Online (Sandbox Code Playgroud)
小智 19
如果您想在多条路线上选择菜单,您可以这样做:
<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>
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想选择单个菜单,您可以这样做:
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
Run Code Online (Sandbox Code Playgroud)
也在Laravel 5.2中测试过
希望这能有所帮助.
小智 12
Laravel 5.2你可以使用
$request->route()->getName()
Run Code Online (Sandbox Code Playgroud)
它会给你当前的路线名称.
在5.2中,您可以直接使用请求:
$request->route()->getName();
Run Code Online (Sandbox Code Playgroud)
或通过帮助方法:
request()->route()->getName();
Run Code Online (Sandbox Code Playgroud)
输出示例:
"home.index"
Run Code Online (Sandbox Code Playgroud)
在控制器操作中,您可以执行以下操作:
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
Run Code Online (Sandbox Code Playgroud)
$request
这里由 Laravel 的服务容器解决。
getName()
仅返回命名路线的路线名称,null
否则(但您仍然可以探索该\Illuminate\Routing\Route
对象以寻找其他感兴趣的东西)。
换句话说,您应该像这样定义您的路线以返回“nameOfMyRoute”:
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以在模板中使用:
<?php $path = Route::getCurrentRoute()->getPath(); ?>
<?php if (starts_with($path, 'admin/')) echo "active"; ?>
Run Code Online (Sandbox Code Playgroud)
小智 5
访问当前路由
在 Blade 模板中获取当前路线名称
{{ Route::currentRouteName() }}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息https://laravel.com/docs/5.5/routing#accessing-the-current-route
在我看来,最简单的解决方案是使用这个助手:
request()->route()->getName()
Run Code Online (Sandbox Code Playgroud)
有关文档,请参阅此链接
归档时间: |
|
查看次数: |
307725 次 |
最近记录: |