国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

ws下分頁報(bào)Call to a member function path() on null

as5739

問題描述

LaravelDb
websocket模式下,請求參數(shù)$page通過websocket json傳輸,自行解析,傳入后報(bào)錯。
看報(bào)錯是request()中沒有拿到參數(shù),但參數(shù)通過websocket傳,如果是自己解析的話,好像是拿不到這些

->paginate() 有一樣的問題

程序代碼

$data = ImRecord::orderBy('id', 'desc')
    ->simplePaginate(page: $page);

報(bào)錯信息

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)

截圖報(bào)錯信息里報(bào)錯文件相關(guān)代碼(沒有請刪除此項(xiàng))

觸發(fā)報(bào)錯的步驟

這里寫觸發(fā)報(bào)錯的步驟

操作系統(tǒng)及workerman/webman等框架組件版本

"workerman/webman-framework": "^1.4.3",
"webman/gateway-worker": "^1.0"
"illuminate/database": "^9.34",
"illuminate/pagination": "^9.34",
1058 2 0
2個回答

nitron

request應(yīng)該是針對HTTP的

  • as5739 2022-10-14

    是的,http可以,但這些判斷在webman框架底層,是不是我在websocket下就用不了paginate這些分頁方法了。。

  • nitron 2022-10-14

    是,要自行實(shí)現(xiàn)

walkor 打賞

改下本地 vendor/workerman/webman-framework/src/support/bootstrap/LaravelDb.php ,你截圖里代碼改成這樣

        if (class_exists(Paginator::class)) {
            Paginator::queryStringResolver(function () {
                $request = request();
                return $request ? $request->queryString(): '';
            });
            Paginator::currentPathResolver(function () {
                $request = request();
                return $request ? $request->path(): '';
            });
            Paginator::currentPageResolver(function ($page_name = 'page') {
                $request = request();
                if (!$request) {
                    return 1;
                }
                $page = (int)($request->input($page_name, 1));
                return $page > 0 ? $page : 1;
            });
        }
  • as5739 2022-10-14

    謝謝老大,可以了

  • walkor 2022-10-14

    好的,你先本地這么改著,下個版本兼容下這個問題

年代過于久遠(yuǎn),無法發(fā)表回答
??