2013-03-28 66 views
0

笨可以返回一个数据库查询作为通用的“对象”,如:演员笨数据库结果对象到自定义对象

$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; 
} 

而我觉得这是非常繁琐的,使丑陋的代码。

回答

3

参见result()下第三部分:)

CodeIgniter User Guide: Generating Query Results

也可以传递一个字符串以产生(代表一个类实例化的每个结果对象(注意:这类必须被加载)

$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 
} 
+0

DOH!在阅读文档时正好掩盖它。谢谢! –

+0

更新后的链接:http://www.codeigniter.com/user_guide/database/results.html –