0

Codeigniter 可以将数据库查询作为通用“对象”返回,例如:

$q = $this->db->get("some_table");
$obj = $this->q->row();
$var = $obj->some_property

在我的例子中,我想创建一个 PHP 类,它的公共变量是 1 对 1 的数据库列,以及一些公共方法。是否有一种快速的一次性方法将通用“行”对象转换或转换为我的自定义类对象?我读过的帖子暗示这当然是可能的,但大多数都涉及一个非常老套的序列化/反序列化解决方案。过去我刚刚做过:

public function __construct($row) {
  $this->prop = $row->prop;
  $this->id = $row->id;
  $this->value = $row->value;
}

而且我发现这很乏味,而且代码很丑。

4

1 回答 1

3

请参阅下面的第三部分result()

CodeIgniter 用户指南:生成查询结果

您还可以将字符串传递给 result() ,它表示要为每个结果对象实例化的类(注意:必须加载此类)

$query = $this->db->query("SELECT * FROM users;");

foreach ($query->result('User') as $row)
{
    echo $row->name; // call attributes
    echo $row->reverse_name(); // or methods defined on the 'User' class
}
于 2013-03-28T23:31:24.843 回答