Codeigniter可以将数据库查询作为通用“对象”返回,如:
$q = $this->db->get("some_table");
$obj = $this->q->row();
$var = $obj->some_property
在我的情况下,我想创建一个PHP类,其公共变量是1对1的数据库列,以及一些公共方法。是否有快速的一次性方法将通用“行”对象转换或转换为我的自定义类对象?我读过的帖子暗示它肯定是可能的,但大多数都涉及一个非常hacky序列化/反序列化解决方案。过去我刚刚完成了:
public function __construct($row) {
$this->prop = $row->prop;
$this->id = $row->id;
$this->value = $row->value;
}
我觉得这很乏味,而且代码很丑。
答案 0 :(得分:3)
请参阅result()
下的第三部分:
CodeIgniter User Guide: Generating Query Results
您还可以将一个字符串传递给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
}