查询的数据,通常需要整理,比如:status 1成功,2失败,要转成文字描述.于是专门封装一个方法,让查询与整理一步到位.大家觉得我代码风格怎么样?欢迎留言.
先看结果
图上默认是追加,而不是覆盖原字段值,当然,这个是可以选择的.
代码图:


配置文件
<br>
/**<br>
* 查询记录<br>
*/<br>
public function choose($where=array(), $field='*', $limit='', $order='', $append='txt'){<br>
<br>
if(is_numeric($where)){<br>
$where = array('id'=>$where); $single = true;<br>
}<br>
<br>
if(is_array($limit)){<br>
if(isset($limit['start'])){<br>
$this->limit($limit['start'], $limit['length']);<br>
}else{<br>
$this->page($limit['page'], $limit['size']);<br>
}<br>
}<br>
<br>
$options = $this->field($field)->join($join)->where($where)->order($order)->_parseOptions();//保留查询参数以备用<br>
$record = $this->setProperty('options', $options)->alias('my')->select();<br>
if(stripos(',', $field) === false && preg_match('/.*\(.+\)/', $field)){<br>
return array_shift(current($record));<br>
}<br>
if(empty($record)) return $record;<br>
<br>
foreach($record as &$row){<br>
foreach($row as $field => $value){<br>
if(is_string($append)){<br>
$_append = $append;<br>
}else{<br>
$_append = isset($append[$field])? $append[$field] : (isset($append[0])? $append[0] : 'txt');<br>
}<br>
if(!empty($_append)) $_append = '_'.$_append;<br>
$text = field_text($options['table'], $field, $value, $row, true);<br>
if($text !== null) $row[$field . $_append] = $text;<br><br>
}<br>
}<br>
<br>
return empty($single)? $record : $record[0]; //单条记录<br>
<br>
}<br><br><br><br>
/**<br>
* 表字段转文字说明<br>
* @param unknown $table 表名<br>
* @param unknown $field 字段名<br>
* @param unknown $value 字段值<br>
* @param unknown $same 为空时,是否返回原始值<br>
* @return string 文本值<br>
*/<br>
function field_text($table, $field, $value, $row=array(), $default=true){<br><br>
$config = C('FIELD_OPTIONS');<br>
if(!isset($config[$table][$field])) return null;<br>
if(!is_array($row)){<br>
$default = $row; $row = array();<br>
}<br>
if(is_callable($config[$table][$field])){<br>
$func = $config[$table][$field];<br>
$return = $func($row);<br>
}else{<br>
$return = isset($config[$table][$field][$value])? $config[$table][$field][$value] : (is_string($default)? $default : ($default? $value : ''));<br>
}<br>
return $return;<br><br>
}
AD:真正免费,域名+虚机+企业邮箱=0元
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号