【PHP】laravel中获取当前路由名称

$name=Route::currentRouteName();这句话的使用需要引入什么类吗?该引入哪个类?求详细过程... $name = Route::currentRouteName(); 这句话的使用需要引入什么类吗?该引入哪个类?
求详细过程
展开
 我来答
程序员小助手
2020-09-21 · 互联网 独立开发 INTJ Automa | 自动化 | R...
程序员小助手
采纳数:16 获赞数:25

向TA提问 私信TA
展开全部

结论:Route类是必须引入的。所以可以调用静态方法 currentRouteName()。

1 - 为什么不引入Route类也可以运行?

因为Route类是在系统启动时作为全局类进行了注册。

在文件 config/app.php 文件内如下所示:

Route门面此处注册到全局,也就是根命名空间。所以在程序内,直接使用 Route::method() 不会有任何问题。

我们在编程中,对于全局注册的类,也需要通过此方法,添加注册。

2 - 获取当前路由名称的一些方法举例

使用Route类的方法:

Route::getCurrentRoute()->getPath();

或者使用Request类的方法:

\Request::route()->getName();

laravel 5.1 你得这么写:

use Illuminate\Support\Facades\Route;

$currentPath= Route::getFacadeRoot()->current()->uri();

到了5.2版本,就是题主的写法:

Route::currentRouteName();

5.3版本到5.8版本,更加灵活了:

$uri = $request->path();

使用 Request 对象的方法就可以返回。获取路由,路由名称,方法名:

  • $route = Route::current();

  • $name = Route::currentRouteName();

  • $action = Route::currentRouteAction();


到了laravel 7.x 对请求对象 Request 有了更加丰富的特性:

$request->route()->getName();


结语

以上获取路由名的方法,根据不同laravel版本,进行不同的处理。

细节上的不同一定要多加注意。

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
v水水无痕v
推荐于2018-01-30 · TA获得超过527个赞
知道小有建树答主
回答量:289
采纳率:100%
帮助的人:203万
展开全部

不需要特别加载吧。你可以直接看看这个方法是怎么调用的在

#laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
#大概Line-1585

/**
 * Get the current route name.
 *
 * @return string|null
 */
public function currentRouteName()
{
return ($this->current()) ? $this->current()->getName() : null;
}
追问
我添加$name = Route::currentRouteName();
然后运行这个页面会直接报致命错误,说route not found,.............
追答
你在哪里调用这个方法?你确定Route自动加载了吗?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-02-03
展开全部
用到了Route相关的Facade,所以引用illuminate\support\facades\route
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
社南芷荷00w
2018-01-30
知道答主
回答量:3
采纳率:0%
帮助的人:2514
展开全部
$request->getRequestUri();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式