首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5.x如何使用路由名称获取控制器名称?

Laravel 5.x如何使用路由名称获取控制器名称?
EN

Stack Overflow用户
提问于 2019-03-01 23:39:05
回答 2查看 2.5K关注 0票数 4

我正在尝试使用路由名称获取控制器名称。

我有一个路由'dashboard‘,我想获取控制器的名称,以便稍后在同一个控制器上执行一个方法。

我阅读了文档,但找到了一种方法或方式。

https://laravel.com/api/5.7/Illuminate/Routing/Route.html

任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-02 00:05:10

例如,这将为您提供有关register路由的信息:

Route::getRoutes()->getByName('register')->action;

这将为您提供一个包含您需要的所有信息的数组:

代码语言:javascript
运行
复制
[
     "middleware" => [
       "web",
     ],
     "uses" => "App\Http\Controllers\Auth\RegisterController@showRegistrationForm",
     "controller" => "App\Http\Controllers\Auth\RegisterController@showRegistrationForm",
     "namespace" => "App\Http\Controllers",
     "prefix" => null,
     "where" => [],
     "as" => "register",
   ]

如果你经常这样做,你可以在你的RouteServiceProvider中添加宏

代码语言:javascript
运行
复制
public function register()
{
    Route::macro('getByName', function($name) {
        return $this->getRoutes()->getByName($name);
    });
}

现在,您可以简单地执行Route::getByName('register')来获取所有路由信息。

票数 5
EN

Stack Overflow用户

发布于 2019-03-01 23:52:44

您可以尝试使用:

代码语言:javascript
运行
复制
get_class(\Request::route()->getController());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54947864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档