根据文档重写了Requeset,在beforeAction中使用app\Request,出现错误:
Argument 1 passed to app\\common\\ApiController::beforeAction() must be an instance of app\\Request, instance of support\\Request given
server.php中也增加了配置项
"request_class" => app\Request::class
请问如何解决?
实在不行,我直接在 support\Request.php中写方法呢?不需要再在app\Request.php再写了
确认下你的版本是否支持设置request_class
看了一下1.2.7,文档说是1.2.5就可以
./webman version
贴下
项目在window下面,componser.json中看的版本号
Workerman version:4.0.30 PHP version:7.4.3
composer.json是webman-framework的版本号,不是webman的。如果你搞不定就在support/Requset里加
查到了,1.2.4,要升级,谢谢walkor
版本升级后,还是一样出错
Webman-framework v1.3.0
webman version 1.2.5
执行./webman instsall
执行了
λ php webman install
Execute installation for webman
Create support/helpers.php
Create support/bootstrap.php
Create support/Plugin.php
Webman-framework 升级到最高
好的,一次又一次回复,添麻烦了
目前最高1.3.8,升级完./webman install
ok,谢谢,我直接升级到 1.3.8
执行 php webman install 出错了
Fatal error: Uncaught FastRoute\BadRouteException: Cannot register two routes matching "/" for method "GET" in E:\shopProject\new_project\server\vendor\nikic\fast-route\src\DataGenerator\RegexBasedAbstract.php:86
Stack trace:
0 E:\shopProject\new_project\server\vendor\nikic\fast-route\src\DataGenerator\RegexBasedAbstract.php(30): FastRoute\DataGenerator\RegexBasedAbstract->addStaticRoute('GET', Array, Array)
1 E:\shopProject\new_project\server\vendor\nikic\fast-route\src\RouteCollector.php(44): FastRoute\DataGenerator\RegexBasedAbstract->addRoute('GET', Array, Array)
2 E:\shopProject\new_project\server\vendor\workerman\webman-framework\src\Route.php(344): FastRoute\RouteCollector->addRoute(Array, '/', Array)
3 E:\shopProject\new_project\server\vendor\workerman\webman-framework\src\Route.php(160): Webman\Route::addRoute(Array, '/', Array)
4 E:\shopProject\new_project\server\config\route.php(50): Webman\Route::any('/', Array)
5 E:\shopProject\new_project\server\config\route.php(63): Webman\Route::{closure}('', Array)
in E:\shopProject\new_project\server\vendor\nikic\fast-route\src\DataGenerator\RegexBasedAbstract.php on line 86
更新下webman/auto-route
更新了,还是一样的问题,"webman/auto-route": "^1.0",实际版本是1.0.2
之前有用到 webman/auto-route 没?发下config/route.php
没有,我刚开始用这个做项目,在做准备工具,写了个api的basecontroller
哦,明白了,我先把route.php清空吧
那把webman/auto-route 卸载了吧。以为你装了 webman/auto-route。
那个报错应该是路由不规范重复了,调用栈能看到那个重复
新版本,多应用下面加了v1目录,不需要再使用文档中在route.php增加的内容了吧?
我不知大你v1目录在哪里,你自己试下吧,不行就route.php 或者使用 webman/auto-route
现在好像能执行,config/route.php清空了,可以识别到 module/version/controller/action
现在还有一个小的需求,我获取到text/plain中的文本,解析成数组后,再放到post中,有什么好解决的方案?
可以了,已解决,我将解析好的数组放到$this->_data['post']中了,目前来看,没有问题,谢谢作者大大
其实这个功能不要也可以,禁止content_type=text/plain,只允许json即可
如果用json,http/request中的parsePost方法就可以解析