2009-12-14 71 views
0

我对于一些简单的数据库模型的正确设计有点问题。比方说,我有一个用户对象与getter/setter和一个读取方法。阅读查询数据库并设置属性。简单模型的PHP OOP设计

class User extends MyDbBaseClass 
{ 

protected $_id; 
protected $_name; 

public function setId($id) 
{ 
    $this->_id = $id; 
} 

public function setName($name) 
{ 
    $this->_name = $name; 
} 

public function getId() 
{ 
    return (int) $this->_id; 
} 

public function getName() 
{ 
    return (string) $this->_name; 
} 

public function read($id) 
{ 
    // fetch ONE record from Database 
    $this->_id = $this->setId($sqlResult['id'); 
    $this->_name = $this->setName($sqlResult['name']); 
} 

public function save() 
{ 
    // do some sql stuff to save user to database 
} 

}

我的问题是,如何返回多个用户?

public function getCollection() 
{ 
    // fetch all user records from database 
    forearch ($sqlResult as $result) { 
     // ... no idea.. 
    } 
} 

目标:

// works 
$u = new User(); 
$u->read(1); 
echo $u->getName(); 

// dont know the best way 
$u = new User(); 
$uC = $u->getCollection(); 

foreach ($uC as $u) 
{ 
    echo $u->getName(); 
} 

此的最佳做法?

回答

1

你可以只返回与用户的数组

public function getCollection() 
{ 
    // fetch all user records from database 
    $users = array(); 
    forearch ($sqlResult as $result) { 
    // ... no idea.. 
    $user = new User(); 
    $user->_name = $result->name; // just an example 
    $user[] = $users; 
    } 
    return $users; 
}