代码之家  ›  专栏  ›  技术社区  ›  Alana Storm

Laravel-路由名被完整的URI替换?

  •  1
  • Alana Storm  · 技术社区  · 6 年前

    我正在开发一个关于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 . 或者,它 通常 返回字符串 Fo/{ID}/Bar . 我们有来自用户的报告,有时候这种识别路由的方法会返回如下结果

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

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

    是否有一些Laravel设置(或流行的扩展/插件)可以替换对 getName , uri 或者控制器名称,以及请求的完整URI?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Aken Roberts    6 年前

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

    Current source code in 5.7

    Method is almost the same in 5.4.9