30
Melhorando o Zend_Db_Table – Parte 3: Contando registros da tabela
No comments · Posted by jaime in Zend Framework
Tá… o Zend_Db_Table já me dá métodos pra inserir, alterar, excluir e fazer busca de registros. Mas… e se eu só quiser saber quantos registros tenho na tabela? Ele não tem por padrão um método para me dizer isso. Eu precisaria fazer um fetchAll() e depois um count() no resultado, ou montar uma query pra me devolver esse resultado, ou passar como parâmetro no bind uma string 'COUNT(*)'… Mas tudo isso parece pouco prático, quando poderíamos ter um método count() pra fazer isso pra nós…
Então é isso que fiz… Implementei na minha classe My_Db_Table_Abstract a interface Coutable, que ficou dessa forma:
class My_Db_Table_Abstract extends Zend_Db_Table_Abstract <strong>implements Countable</strong> { /* Aqui ficam os métodos citados nos posts anteriores */ public function count($where = null) { $select = $this->select(); if ($where !== null) { $this->_where($select, $where); } $select->from($this->_name, array('count' => 'COUNT(*)')); $count = $this->getAdapter()->fetchRow($select); return intval($count['count']); } } |
Pra ficar ainda mais completo, o método pode receber como parâmetro algumas restrições, caso não se queria contar a quantidade total, e sim algo mais específico. Agora, fica bem mais fácil:
$tbUsuarios = new Usuarios(); $qtty = $tbUsuarios->count(); |
Se quisermos, por exemplo, saber quantos usuários usam gmail:
$qtty = $tbUsuarios->count("email LIKE '%@gmail.com'"); |
Zend Framework · Zend_Db_Table
No comments yet.
Leave a Reply
<< Melhorando o Zend_Db_Table – Parte 4: Fazendo JOIN automático com tabelas relacionadas
