获取当前请求路由信息,$route->getPath()报错

fuxu
use Webman\Route;

Route::group('/blog', function () {
    Route::any('/create', [app\controller\UserController::class, 'hello'])->name('11222');
});

 public function hello(Request $request)
    {
        $route = $request->route;
        var_export($route->getPath());
        var_export('ok');
        // return response('name ' . $route->getName());
    }

Error: Call to undefined method Webman\Route\Route::getPath()

898 7 0
7个回答

nitron
  • fuxu 2022-12-05

    $request->path();是可以获取到

    $route = $request->route;
    $route->getMethods(); 这个是报错
    $route->getName();这个是正常

  • powerbowen 2022-12-05

    $request->method();

  • fuxu 2022-12-05

    $route是不行吗?

  • powerbowen 2022-12-05

    $route->getMethods(); 得到的是这东西 ["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"] ,而且你要走路由管理的路由,不然$route是null

  • fuxu 2022-12-05

    $route不是null,上面我说错了,是$route->getPath()报错

  • powerbowen 2022-12-05

    走路由管理配置的没有任何问题,你说$route不是null,打印截图贴出来。
    Error: Call to undefined method Webman\Route\Route::getPath() 报错这这里呢,你别骗我,我读书少

  • fuxu 2022-12-05

    看打印截图

powerbowen

OK的
截图
截图
截图
截图

Route::any('/api', [\app\controller\ApiController::class, 'index'])->name('11222');

    public function index(Request $request): Response
    {
        $route = $request->route;
        var_export($route);
        var_export($route->getPath());
        return json($route->getPath());
    }
  • fuxu 2022-12-05

    我也不明白,只有$route->getPath()报错

  • powerbowen 2022-12-05

    你代码发我邮箱我瞧瞧 270723814@qq.com

  • fuxu 2022-12-05

    我是刚学习,就按照文档做的,就这一段代码
    $route = $request->route;
    var_dump($route->getPath());

  • six 2022-12-05

    执行composer info 看下版本 webman-framework 版本

  • fuxu 2022-12-05

    版本是"workerman/webman-framework": "^1.4.3"

  • six 2022-12-05

    打开Webman\Route\Route 这个类,看下getPath方法是否存在。

  • fuxu 2022-12-05

    没有getPath

fuxu

截图截图

  • 暂无评论
fuxu

我在win上面又试了试,没有问题
在docker出现了问题

powerbowen

截图

  • 暂无评论
fuxu

截图

  • 暂无评论
小W

看了一下webman-framework源码,getPath没问题,应该是你改动了源码,重新install试试

  • 暂无评论
年代过于久远,无法发表回答
🔝