/** * Recupera um objeto pela chave primaria ou chave => valor * * @author Hugo Ferreira da Silva * @link http://www.hufersil.com.br * @param mixed $pk Nome da chave ou valor * @param mixed $pkValue Valor do campo * @param boolean $allRows Se retorna todas as linhas ou somente uma * @return array Dados encontrados em formato de array associativo */ public function get($pk, $pkValue = null, $allRows = false) { $this->obj->reset(); // se a chave (que agora eh o valor) for array if (is_array($pk)) { // pega a lista de chaves primarias $pks = $this->obj->_getPrimaryKeys(); // pega a primeira $first = array_shift($pks); // faz a consulta $this->obj->where('{' . $first['name'] . '} IN (?)', $pk)->find(true); // se o valor nao eh array } else { if (!is_array($pkValue)) { // faz a consulta normal $this->obj->get($pk, $pkValue); // se o valor for array } else { $this->obj->where('{' . $pk . '} IN (?)', $pkValue)->find(true); } } // resultado $result = array(); // se for para retornar todas as linhas if ($allRows) { // retorna o allToArray $result = $this->obj->allToArray(); // do contrario } else { // retorna somente a primeira $result = $this->obj->toArray(); } return $result; }