在过去的Codeigniter项目中,我一直使用$query->result_array()
代替$query->result()
例如,作为一个数组,我在模型中有以下内容:
$this->db->select('id, username');
$this->db->from('users');
$query = $this->db->get();
$result = array();
foreach ($query->result_array() as $row)
{
$id = $row['id'];
$result[$id]['id'] = $row['id'];
$result[$id]['username'] = strtolower($row['username']);
)
return $result;
更多记录可能会变得非常混乱,我必须添加所有字段,即使我只需要对其中一个字段执行操作。
现在,对于我当前的项目,我只是尝试$query->result()
,它只是一个对象数组,但我不确定如何对它们执行操作并返回结果。
例如,如果我正在使用$query->result()
并且我想让每个用户名都小写(strtolower),我将如何在模型中执行这些更改?
答案 0 :(得分:1)
您的示例和评论的答案:
$results = $query->result();
foreach($results as $result){
$result->username = strtolower($result->username);
}
return $results;
答案 1 :(得分:0)
foreach($query->result() as $row){
$username_lower = strtolower($row->username);
//if you want to actually update the record in the db
$this->db->where('id',$row->id);
$this->db->update('users', array('username' => $row->username));
}