求助一个路由不生效,提示404,大佬帮忙看下 [已解决]

jianqi

路由代码

use Webman\Route;

Route::any('/open/base/wechat/appid/{name}', [app\open\controller\Base::class, 'testurl']);

控制器代码


namespace app\open\controller;

use support\Request;
use think\facade\Db;
use EasyWeChat\Factory;
use EasyWeChat\OpenPlatform\Server\Guard;
use Symfony\Component\HttpFoundation\HeaderBag;
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;

class Base
{  

    public function testurl(){

        return response('我要看看');
      }

访问 http://127.0.0.1:8787/open/base/wechat/appid/wx555555
页面显示404 看样子路由没有生效, 不用类路由,使用闭包路由是ok的

是因为目录太深的问题吗? 大佬帮忙看看 感谢

已经解决,是命名空间和物理路径不一致导致,
在不用路由下没什么问题,
用了路由会导致404,
所以需要遵守规范,统一命名空间和文件物理路径

297 3 0
3个回答

jianqi

补充下,webman版本是1.4.3

  • 暂无评论
liziyu
// 匹配 /user /user/123 和 /user/abc
Route::any('/user[/{name}]', function ($request, $name = null) {
   return response($name ?? 'tom');
});
  • jianqi 2022-09-01

    感谢是 命名空间和路径不一致导致

xiuwang

ls app/open/controller/Base.php
看下 app/open/controller/Base.php 文件在不在,是不是名字错了,或者路径错了,大小写检查下

  • jianqi 2022-09-01

    感谢, 排查是命名空间和物理路径不一致导致。

🔝