LaravelDb
websocket模式下,请求参数$page通过websocket json传输,自行解析,传入后报错。
看报错是request()中没有拿到参数,但参数通过websocket传,如果是自己解析的话,好像是拿不到这些
->paginate() 有一样的问题
$data = ImRecord::orderBy('id', 'desc')
->simplePaginate(page: $page);
Error: Call to a member function path() on null in D:\phpstudy_pro\WWW\im\vendor\workerman\webman-framework\src\support\bootstrap\LaravelDb.php:104
Stack trace:
#0 [internal function]: support\bootstrap\LaravelDb::support\bootstrap\{closure}()
#1 D:\phpstudy_pro\WWW\im\vendor\illuminate\pagination\AbstractPaginator.php(481): call_user_func(Object(Closure))
#2 D:\phpstudy_pro\WWW\im\vendor\illuminate\database\Eloquent\Builder.php(918): Illuminate\Pagination\AbstractPaginator::resolveCurrentPath()
#3 D:\phpstudy_pro\WWW\im\app\support\utils\WebSocketUtils.php(93): Illuminate\Database\Eloquent\Builder->simplePaginate(15, Array, 'page', 1)
这里写触发报错的步骤
"workerman/webman-framework": "^1.4.3",
"webman/gateway-worker": "^1.0"
"illuminate/database": "^9.34",
"illuminate/pagination": "^9.34",
request应该是针对HTTP的
是的,http可以,但这些判断在webman框架底层,是不是我在websocket下就用不了paginate这些分页方法了。。
是,要自行实现
改下本地 vendor/workerman/webman-framework/src/support/bootstrap/LaravelDb.php ,你截图里代码改成这样
谢谢老大,可以了
好的,你先本地这么改着,下个版本兼容下这个问题