【问题标题】:Laravel -- Route Name Replaced with Full URI?Laravel - 路由名称替换为完整 URI?
【发布时间】:2019-02-02 00:31:11
【问题描述】:

我正在开发一个报告 Laravel 路由名称的开发人员工具(不幸的是,目前是封闭源代码)。它使用像这样大部分工作的代码(这被简化以使提出这个问题更容易)。

function identifyRoute() {
    $router = app('router');
    $route  = $router->current();

    $name   = $route->name;
    if($name) {
        return $name;
    }

    $action = $route->getAction();
    if(isset($action["controller"]) && $action["controller"]) {
        return $action["controller"];
    }

    if($name = $route->uri())
    {
        return $name;
    }

    return 'Could Not Identify Name';
}

所以,对于像这样的路线

Route::get('foo/{id}/bar', function($id ) {
    //...      
});

我们的函数返回字符串foo/{id}/bar。或者,它通常返回字符串foo/{id}/bar。我们收到来自用户的报告,有时这种识别路线的方法会返回类似

foo/1234/bar
foo/1235/bar
foo/1236/bar
foo/1237/bar             

也就是说,它返回请求的整个 URI。

是否有一些 Laravel 设置(或流行的扩展程序/插件)可以用请求的完整 URI 替换对 getNameuri 或控制器名称的调用结果?

【问题讨论】:

  • 用户是哪个版本,报错,运行?
  • @Ice76 我们知道的是5.4.9

标签: php laravel routing


【解决方案1】:

有点猜测,但OPTIONS HTTP 请求将返回 200 响应,其中包含适当的允许动词,使用请求的路径原样而不是模式。

Current source code in 5.7

Method is almost the same in 5.4.9

【讨论】:

  • 猜对了,就是这样。谢谢! (另外,尽量不要抱怨 Laravel 没有用中间件处理这个问题)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 2019-09-08
  • 2017-02-12
  • 2015-10-04
相关资源
最近更新 更多