更改数据库会导致模型作为对象

时间:2012-11-15 18:17:34

标签: php codeigniter

在过去的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),我将如何在模型中执行这些更改?

2 个答案:

答案 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));
}