2009-12-14 69 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; 
}