getMessage(). PHP_EOL; $msg .= '[file_info] '.$e->getFile().':'.$e->getLine(); // $msg .= '[trace_info] '.$e->getTraceAsString(). PHP_EOL; return $msg; } /** * 填充用户 * @desc * * @param array $users * @param array $data * @param string $parent * @return array */ public static function fillingUserData(array $users, array $data, string $parent = "") :array { if (!empty($users)) { $users_tmp = array_reduce($users, function (&$users, $val) { $users[$val['id']] = $val; return $users; }); foreach ($data as &$v) { $v["user"] = $users_tmp[$v["user_id"]]; if (!empty($parent)) { if (strpos($parent, '.') > 1) { $keys = explode('.', $parent); $v["parent_user"] = $users_tmp[$v[$keys[0]][$keys[1]]]; } else { $v["parent_user"] = $users_tmp[$v[$parent]]; } } } } return $data; } /** * 填充文本 * @desc * * @param array $data * @param array $keys ['status' => [1 => '正常', 0 => '禁用', -1 => '已删除']] * @param string $default_text * @return array */ public static function fillingAttrText(array $data, array $keys, string $default_text = '未知属性'): array { foreach ($data as &$v) { foreach ($keys as $key => $val) { $tmp_key = "{$key}_text"; if (!empty($val[$v[$key]])) { $v[$tmp_key] = $val[$v[$key]]; } else { $v[$tmp_key] = $default_text; } } } return $data; } }