hyperf3.0 數(shù)據(jù)庫查詢將結(jié)果轉(zhuǎn)為數(shù)組格式 通過監(jiān)聽器來監(jiān)聽 Hyperf\Database\Events\StatementPrepared 事件來變更該配置

要將數(shù)據(jù)庫查詢的結(jié)果轉(zhuǎn)換為數(shù)組格式,可以通過監(jiān)聽器來監(jiān)聽 Hyperf\Database\Events\StatementPrepared 事件,并在事件處理程序中進(jìn)行轉(zhuǎn)換。

首先,創(chuàng)建一個監(jiān)聽器類,實現(xiàn) Hyperf\Event\Contract\ListenerInterface 接口,并在 process 方法中進(jìn)行轉(zhuǎn)換操作。例如,創(chuàng)建一個名為 QueryResultToArrayListener 的監(jiān)聽器類:

<?php

namespace App\Listener;

use Hyperf\Database\Events\StatementPrepared;
use Hyperf\Event\Annotation\Listener;
use Hyperf\Event\Contract\ListenerInterface;

/**
 * @Listener
 */
class QueryResultToArrayListener implements ListenerInterface
{
    public function listen(): array
    {
        return [
            StatementPrepared::class,
        ];
    }

    public function process(object $event): void
    {
        if ($event instanceof StatementPrepared) {
            $event->statement->setFetchMode(\PDO::FETCH_ASSOC);
        }
    }
}

然后,在 config/autoload/listeners.php 配置文件中注冊該監(jiān)聽器:

<?php

use App\Listener\QueryResultToArrayListener;

return [
    \App\Listener\QueryResultToArrayListener::class,
];

這樣,當(dāng)每次執(zhí)行數(shù)據(jù)庫查詢時,StatementPrepared 事件都會被觸發(fā),從而將查詢結(jié)果轉(zhuǎn)換為數(shù)組格式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容