现有学生表管理:
这是显示接口返回的数据:
我想要实现的是:比如这个班级id,我想给转化成班级名称,我可能要拿id去查班级表查班级名称。
再举个例子:比如这个分数,我不想让他显示实际分数,大于等于60分显示合格,否则显示不合格。
如果在fastadmin中,我会重写这个查询方法,并进行 foreach 判断处理,但是在 webmanadmin中,不知道咋实现。
这是官方的查询方法:
难道要这样吗?没大看懂源码,请大佬们指点一二,以解小弟之疑
webman-admin也一样,重写select或者doFomart方法
收到,感谢老大
webman中的doFormat中有一个user_func:afterQuery,用这个就很方便做。
afterQuery
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; }
好嘞,感谢分享。
webman-admin也一样,重写select或者doFomart方法
收到,感谢老大
webman中的doFormat中有一个user_func:
afterQuery
,用这个就很方便做。示例:
好嘞,感谢分享。