J'utilise un modèle de domaine riche dans mon application. Les idées de base ont été prises there. Par exemple, j'ai des entités Utilisateur et Commentaire. Ils sont définis comme suit:Pagination dans un modèle de domaine riche
<?php
class Model_User extends Model_Abstract {
public function getComments() {
/**
* @var Model_Mapper_Db_Comment
*/
$mapper = $this->getMapper();
$commentsBlob = $mapper->getUserComments($this->getId());
return new Model_Collection_Comments($commentsBlob);
}
}
class Model_Mapper_Db_Comment extends Model_Mapper_Db_Abstract {
const TABLE_NAME = 'comments';
protected $_mapperTableName = self::TABLE_NAME;
public function getUserComments($user_id) {
$commentsBlob = $this->_getTable()->fetchAllByUserId((int)$user_id);
return $commentsBlob->toArray();
}
}
class Model_Comment extends Model_Abstract {
}
?>
fonction de getUserComments Mapper retourne simplement quelque chose comme:
return $this->getTable->fetchAllByUserId($user_id)
qui est un tableau. fetchAllByUserId accepte les paramètres $ count et $ offset, mais je ne sais pas les passer de mon contrôleur à cette fonction via le modèle sans réécrire tout le code du modèle. Donc, la question est comment puis-je organiser la pagination à travers les données du modèle (getComments). Existe-t-il une "belle" méthode pour obtenir des commentaires de 5 à 10, pas tous, comme le renvoie getComments par défaut.
Pourriez-vous également afficher le code du mappeur, en particulier la fonction 'getUserComments'? – gnarf
Terminé. Vous pouvez jeter un coup d'oeil. – Ololo