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;
}
参见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
}