0

過去の 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;

レコードが増えると非常に面倒になる可能性があり、そのうちの 1 つだけで操作を実行する必要がある場合でも、すべてのフィールドを追加する必要があります。

現在、私の現在のプロジェクトで$query->result()は、オブジェクトの配列にすぎませんが、それらに対して操作を実行して結果を返す方法がわかりません。

たとえば、使用$query->result()していて、すべてのユーザー名を小文字 (strtolower) にしたい場合、モデルでこれらの変更をどのように実行しますか?

4

2 に答える 2

1

あなたの例とコメントへの答え:

$results = $query->result();
    foreach($results as $result){
        $result->username = strtolower($result->username);
    }
return $results;
于 2012-11-15T18:23:41.527 に答える
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));
} 
于 2012-11-15T18:22:04.480 に答える