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

webman-admin如何自定義查詢結(jié)果(字段值轉(zhuǎn)化)

joytom

現(xiàn)有學(xué)生表管理:

截圖

這是顯示接口返回的數(shù)據(jù):

截圖

我想要實(shí)現(xiàn)的是:比如這個(gè)班級(jí)id,我想給轉(zhuǎn)化成班級(jí)名稱,我可能要拿id去查班級(jí)表查班級(jí)名稱。

再舉個(gè)例子:比如這個(gè)分?jǐn)?shù),我不想讓他顯示實(shí)際分?jǐn)?shù),大于等于60分顯示合格,否則顯示不合格。

如果在fastadmin中,我會(huì)重寫這個(gè)查詢方法,并進(jìn)行 foreach 判斷處理,但是在 webmanadmin中,不知道咋實(shí)現(xiàn)。

這是官方的查詢方法:

截圖

難道要這樣嗎?沒大看懂源碼,請(qǐng)大佬們指點(diǎn)一二,以解小弟之疑

截圖

573 2 1
2個(gè)回答

walkor 打賞

webman-admin也一樣,重寫select或者doFomart方法

chao

webman中的doFormat中有一個(gè)user_func:afterQuery,用這個(gè)就很方便做。

protected function doFormat($query, $format, $limit): Response
{
    $methods = [
        'select' => 'formatSelect',
        'tree' => 'formatTree',
        'table_tree' => 'formatTableTree',
        'normal' => 'formatNormal',
    ];
    $paginator = $query->paginate($limit);
    $total = $paginator->total();
    $items = $paginator->items();
    if (method_exists($this, "afterQuery")) {
        $items = call_user_func([$this, "afterQuery"], $items);
    }
    $format_function = $methods[$format] ?? 'formatNormal';
    return call_user_func([$this, $format_function], $items, $total);
}

示例:

// 查詢后處理
protected function afterQuery($items) 
{
    $dictData = (array)Dict::get('endpoint_category');
    $cateDic = array_column($dictData, 'name', 'value');

    $ruleDic = Rule::pluck('name', 'id');
    foreach ($items as $key => $item) {
        $items[$key]['cid_text'] = $cateDic[$item['cid']] ?? '';
        $items[$key]['rule_text'] = $ruleDic[$item['alarm_rule_id']] ?? '--';
    }
    return $items;
}
  • joytom 2024-11-29

    好嘞,感謝分享。

??